使用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实现多服务器session共享之NFS共享的方法
Mar 16 PHP
PHP PDO函数库详解
Apr 27 PHP
ThinkPHP3.2.3数据库设置新特性
Mar 05 PHP
php实现数组中索引关联数据转换成json对象的方法
Jul 08 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
Jul 08 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
php版微信返回用户text输入的方法
Nov 14 PHP
laravel-admin的图片删除实例
Sep 30 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
Jan 04 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入门学习笔记之一
2010/10/12 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
PHP读取mssql json数据中文乱码的解决办法
2016/04/11 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
实例讲解JS中数组Array的操作方法
2014/05/09 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JavaScript中使用自然对数ln的方法
2015/06/14 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
Python实现购物车功能的方法分析
2017/11/10 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
外语专业毕业生个人的自荐信
2013/11/19 职场文书
人事部经理岗位职责
2014/03/07 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
学校百日安全生产活动总结
2014/07/05 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
工伤私了协议书范本
2014/11/24 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
Python中threading库实现线程锁与释放锁
2021/05/17 Python