使用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之Smarty入门
Jan 04 PHP
php session安全问题分析
Jun 24 PHP
PHP中改变图片的尺寸大小的代码
Jul 17 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
php给每个段落添加空格的方法
Mar 20 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
浅谈PHP中类和对象的相关函数
Apr 26 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
php7 错误处理机制修改实例分析
May 25 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
JavaScript实现删除电脑的关机键
2016/07/26 PHP
iOS10推送通知开发教程
2016/09/19 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
JS backgroundImage控制
2009/05/19 Javascript
javascript中的括号()用法小结
2014/04/14 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JavaScript实现动画打开半透明提示层的方法
2015/04/21 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
浅谈jQuery 中的事件冒泡和阻止默认行为
2016/05/28 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
实现vuex原理的示例
2020/10/21 Javascript
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python中不同进制的语法及转换方法分析
2016/07/27 Python
Python实现登录接口的示例代码
2017/07/21 Python
Python中字典(dict)合并的四种方法总结
2017/08/10 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
技校毕业生自荐信
2014/06/03 职场文书
任命书怎么写
2014/06/04 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
小学主题班会教案
2015/08/17 职场文书
python实现层次聚类的方法
2021/11/01 Python