使用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 相关文章推荐
MySQL GBK→UTF-8编码转换
May 24 PHP
用PHP获取Google AJAX Search API 数据的代码
Mar 12 PHP
php通过ajax实现双击table修改内容
Apr 28 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
PHP中非常有用却鲜有人知的函数集锦
Aug 17 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 ftp文件上传函数(基础版)
2010/06/03 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
thinkphp多层MVC用法分析
2015/12/30 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
2016/04/21 PHP
php实现数据库的增删改查
2017/02/26 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
js资料toString 方法
2007/03/13 Javascript
jQuery技巧总结
2011/01/01 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
微信小程序之滑动页面隐藏和显示组件功能的实现代码
2020/06/19 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python 链接和操作 memcache方法
2017/03/04 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
Python实现微信机器人的方法
2019/09/06 Python
周年庆典邀请函范文
2014/01/23 职场文书
医院2014国庆节活动策划方案
2014/09/21 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
房屋产权证明书
2015/06/19 职场文书
师德师风培训感言
2015/08/03 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
Python学习之os包使用教程详解
2022/03/21 Python
Python采集股票数据并制作可视化柱状图
2022/04/04 Python