使用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入门速成(2)
Oct 09 PHP
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
Aug 26 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
PHP实现的汉字拼音转换和公历农历转换类及使用示例
Jul 01 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
PHP程序员必须知道的两种日志实例分析
May 14 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异常处理使用示例
2014/02/25 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python使用Supervisor来管理进程的方法
2015/05/28 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
python操作列表的函数使用代码详解
2017/12/28 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
Django时区详解
2019/07/24 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
应届生如何写自荐信
2014/01/05 职场文书
学习决心书
2014/03/11 职场文书
讲文明倡议书
2015/04/29 职场文书
升学宴家长致辞
2015/07/27 职场文书
升学宴来宾致辞
2015/07/27 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
Python3接口性能测试实例代码
2021/06/20 Python