使用swoole扩展php websocket示例


Posted in PHP onFebruary 13, 2014
<?php
define('DEBUG', 'on');
define("WEBPATH", str_replace("\\","/", __DIR__));
require __DIR__ . '/../libs/lib_config.php';
class WebSocket extends Swoole\Network\Protocol\WebSocket
{
    /**
     * 下线时,通知所有人
     */
    function onClose($serv, $client_id, $from_id)
    {
        //将下线消息发送给所有人
        //$this->log("onOffline: " . $client_id);
        //$this->broadcast($client_id, "onOffline: " . $client_id);
        parent::onClose($serv, $client_id, $from_id);
    }
    /**
     * 接收到消息时
     * @see WSProtocol::onMessage()
     */
    function onMessage($client_id, $ws)
    {
        $this->log("onMessage: ".$client_id.' = '.$ws['message']);
        $this->send($client_id, "Server: ".$ws['message']);
  //$this->broadcast($client_id, $ws['message']);
    }
    function broadcast($client_id, $msg)
    {
        foreach ($this->connections as $clid => $info)
        {
            if ($client_id != $clid)
            {
                $this->send($clid, $msg);
            }
        }
    }
}

$AppSvr = new WebSocket();
$AppSvr->loadSetting(__DIR__."/swoole.ini"); //加载配置文件
$AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger
$server = new \Swoole\Network\Server('0.0.0.0', 9503);
$server->setProtocol($AppSvr);
//$server->daemonize(); //作为守护进程
$server->run(array('worker_num' =>4));
PHP 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
帝国cms常用标签汇总
Jul 06 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
PHP Cli 模式设置进程名称的方法
Jun 12 PHP
php实现图片添加水印功能
Feb 13 #PHP
php教程之phpize使用方法
Feb 12 #PHP
php教程之魔术方法的使用示例(php魔术函数)
Feb 12 #PHP
php-fpm配置详解
Feb 12 #PHP
PHP添加Xdebug扩展的方法
Feb 12 #PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 #PHP
php中的路径问题与set_include_path使用介绍
Feb 11 #PHP
You might like
php下连接mssql2005的代码
2011/01/17 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
php上传文件问题汇总
2015/01/30 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
IE本地存储userdata的一个bug说明
2010/07/01 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
浅谈Cookie的生命周期问题
2016/08/02 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
用Python实现命令行闹钟脚本实例
2016/09/05 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
Python3 批量扫描端口的例子
2019/07/25 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
Python通过len函数返回对象长度
2020/10/22 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
护士个人简历自荐信
2013/10/18 职场文书
英语专业应届生求职信范文
2013/11/15 职场文书
英语教师自荐信
2014/05/26 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
golang json数组拼接的实例
2021/04/28 Golang
Django分页器的用法你都了解吗
2021/05/26 Python
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android