使用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 相关文章推荐
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php防盗链的常用方法小结
Jul 02 PHP
七款最流行的PHP本地服务器分享
Feb 19 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
PHP 无限级分类
May 04 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
Laravel框架实现redis集群的方法分析
Sep 14 PHP
PHP下用Swoole实现Actor并发模型的方法
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的面试题集
2006/11/19 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
jQuery参数列表集合
2011/04/06 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
js漂浮广告实现代码
2015/08/15 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python3.X 抓取火车票信息【修正版】
2018/06/19 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
python中rc1什么意思
2020/06/19 Python
python 调用Google翻译接口的方法
2020/12/09 Python
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
参观监狱心得体会
2014/01/02 职场文书
毕业生自荐书
2014/02/03 职场文书
英文演讲稿
2014/05/15 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
java实现web实时消息推送的七种方案
2022/07/23 Java/Android