使用swoole扩展php websocket示例
发布:smiling 来源: PHP粉丝网 添加日期:2020-09-09 15:41:38 浏览: 评论:0
WebSocket规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,如果你想要用PHP来写websocket应用,那swoole_framework一定是最好的选择,需要的朋友可以参考下,代码如下:
- <?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);
- }
- }
- }
- }
- //phpfensi.com
- $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));
Tags: swoole websocket
- 上一篇:php教程之phpize使用方法
- 下一篇:php中hashtable实现示例分享
相关文章
- ·【swoole入门】如何快速创建一个web服务器(2020-03-05)
- ·【swoole入门】如何快速创建一个tcp服务器(2020-03-05)
- ·初识PHP中的Swoole(2021-07-25)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)