使用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 setTime 设置当前时间的代码
Aug 27 PHP
php中require和require_once的区别说明
Feb 27 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
分享PHP守护进程类
Dec 30 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
实例分析PHP将字符串转换成数字的方法
Jan 27 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
php中关于换行的实例写法
Sep 26 PHP
如何用PHP实现多线程编程
May 26 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP XML数据解析代码
2010/05/26 PHP
php购物车实现代码
2011/10/10 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
2011/11/10 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
ThinkPHP框架分布式数据库连接方法详解
2017/03/14 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
javascript iframe编程相关代码
2009/12/28 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
JS实现点餐自动选择框(案例分析)
2019/12/10 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python import用法以及与from...import的区别
2015/05/28 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python中最大最小赋值小技巧(分享)
2017/12/23 Python
python中的随机函数小结
2018/01/27 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python大数据之使用lxml库解析html网页文件示例
2019/11/16 Python
Python修改列表值问题解决方案
2020/03/06 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python super()函数的基本使用
2020/09/10 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
一个大学生十年的职业规划
2014/01/17 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL