使用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
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
Nov 05 PHP
PHP5.3新特性小结
Feb 14 PHP
PHP中header用法小结
May 23 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
php socket通信简单实现
Nov 18 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
CI框架中zip类应用示例
2014/06/17 PHP
详解PHP数组赋值方法
2015/11/07 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
2015/12/25 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
2020/02/10 PHP
JavaScript中两个字符串的匹配
2016/06/08 Javascript
浅谈jquery中使用canvas的问题
2016/10/10 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
JS面向对象的程序设计相关知识小结
2018/05/26 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python+selenium实现简历自动刷新的示例代码
2019/05/20 Python
python调试神器PySnooper的使用
2019/07/03 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python实现超市商品销售管理系统
2019/11/22 Python
Python修改列表值问题解决方案
2020/03/06 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
自我鉴定怎么写
2014/01/12 职场文书
面试后感谢信
2014/02/01 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
社会实践活动总结
2015/02/05 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android