使用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生成静态页面详解
Dec 05 PHP
AJAX for PHP简单表数据查询实例
Jan 02 PHP
PHP开发框架总结收藏
Apr 24 PHP
PHP 防恶意刷新实现代码
May 16 PHP
一篇有意思的技术文章php介绍篇
Oct 26 PHP
php中对2个数组相加的函数
Jun 24 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
PHP控制前台弹出对话框的实现方法
Aug 21 PHP
由php中字符offset特征造成的绕过漏洞详解
Jul 07 PHP
php中各种定义变量的方法小结
Oct 18 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
PHP实现抽奖功能实例代码
Jun 30 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安装全攻略:APACHE
2006/10/09 PHP
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
Javascript实例教程(19) 使用HoTMetal(6)
2006/12/23 Javascript
js实现addClass,removeClass,hasClass的函数代码
2011/07/13 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
JS实现HTML标签转义及反转义
2020/04/14 Javascript
js随机生成一个验证码
2017/06/01 Javascript
jQuery Collapse1.1.0折叠插件简单使用
2017/08/28 jQuery
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
vue插件mescroll.js实现移动端上拉加载和下拉刷新
2019/03/07 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
python逐行读取文件内容的三种方法
2014/01/20 Python
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
selenium+python截图不成功的解决方法
2019/01/30 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
25道Java面试题集合
2013/05/21 面试题
十岁生日父母答谢词
2014/01/18 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
大学生见习报告范文
2014/11/03 职场文书
2014年医生工作总结
2014/11/21 职场文书
初中生毕业评语
2014/12/29 职场文书
创业计划书之美甲店
2019/09/20 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书