www.adminn.cn
站长正能量分享网!

使用swoole扩展php websocket示例

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

WebSocket规范的目标是在浏览器中实现和服务器端双向通信。双向通信可以拓展浏览器上的应用类型,如果你想要用PHP来写websocket应用,那swoole_framework一定是最好的选择,需要的朋友可以参考下,代码如下:

  1. <?php 
  2. define('DEBUG''on'); 
  3. define("WEBPATH"str_replace("\\","/", __DIR__)); 
  4. require __DIR__ . '/../libs/lib_config.php'
  5.  
  6. class WebSocket extends Swoole\Network\Protocol\WebSocket 
  7.     /** 
  8.      * 下线时,通知所有人 
  9.      */ 
  10.     function onClose($serv$client_id$from_id
  11.     { 
  12.         //将下线消息发送给所有人 
  13.         //$this->log("onOffline: " . $client_id); 
  14.         //$this->broadcast($client_id, "onOffline: " . $client_id); 
  15.         parent::onClose($serv$client_id$from_id); 
  16.     } 
  17.  
  18.     /** 
  19.      * 接收到消息时 
  20.      * @see WSProtocol::onMessage() 
  21.      */ 
  22.     function onMessage($client_id$ws
  23.     { 
  24.         $this->log("onMessage: ".$client_id.' = '.$ws['message']); 
  25.         $this->send($client_id"Server: ".$ws['message']); 
  26.   //$this->broadcast($client_id, $ws['message']); 
  27.     } 
  28.  
  29.     function broadcast($client_id$msg
  30.     { 
  31.         foreach ($this->connections as $clid => $info
  32.         { 
  33.             if ($client_id != $clid
  34.             { 
  35.                 $this->send($clid$msg); 
  36.             } 
  37.         } 
  38.     } 
  39.  
  40. //phpfensi.com 
  41. $AppSvr = new WebSocket(); 
  42. $AppSvr->loadSetting(__DIR__."/swoole.ini"); //加载配置文件 
  43. $AppSvr->setLogger(new \Swoole\Log\EchoLog(true)); //Logger 
  44.  
  45. $server = new \Swoole\Network\Server('0.0.0.0', 9503); 
  46. $server->setProtocol($AppSvr); 
  47. //$server->daemonize(); //作为守护进程 
  48. $server->run(array('worker_num' =>4)); 

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《使用swoole扩展php websocket示例》
文章链接:https://www.adminn.cn/news/8548.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

2次开发,学习研究使用!扫码支付后联系QQ677123发货!

支付宝扫一扫打赏