使用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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
php构造函数实例讲解
Nov 13 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
Laravel修改验证提示信息为中文的示例
Oct 23 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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(3)
2006/10/09 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
PHP工厂模式简单实现方法示例
2018/05/23 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
node.js使用nodemailer发送邮件实例
2014/03/10 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
2019/05/05 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
Python中splitlines()方法的使用简介
2015/05/20 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
Python的装饰器使用详解
2017/06/26 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
Python matplotlib可视化实例解析
2020/06/01 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
Linux的主要特性
2016/09/03 面试题
安全演讲稿大全
2014/05/09 职场文书
综合测评自我评价
2015/03/06 职场文书
2016年国庆节宣传标语
2015/11/25 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
基于Python实现将列表数据生成折线图
2022/03/23 Python
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android
windows系统搭建WEB服务器详细教程
2022/08/05 Servers
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis