<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ## **一,WebSocket服務器創建** ``` <?php // +---------------------------------------------------------------------- // | najing [ 通用后臺管理系統 ] // +---------------------------------------------------------------------- // | Copyright (c) 2020 http://www.najingquan.com All rights reserved. // +---------------------------------------------------------------------- // | Author: 救火隊隊長 // +---------------------------------------------------------------------- namespace server; /** * 概要描述:WebSocket服務器 * @author: 救火隊隊長 * @since: 2020-05-23 22:45 */ class WebSocketServer { protected $serv = null; //Swoole\Server對象 protected $host = '0.0.0.0'; //監聽對應外網的IP 0.0.0.0監聽所有ip protected $port = 9604; //監聽端口號 public function __construct() { //創建websocket服務器對象,監聽0.0.0.0:9604端口 $this->serv = new \Swoole\Websocket\Server($this->host, $this->port); //設置參數 //如果業務代碼是全異步 IO 的,worker_num設置為 CPU 核數的 1-4 倍最合理 //如果業務代碼為同步 IO,worker_num需要根據請求響應時間和系統負載來調整,例如:100-500 //假設每個進程占用 40M 內存,100 個進程就需要占用 4G 內存 $this->serv->set(array( 'worker_num' => 4, //設置啟動的worker進程數。【默認值:CPU 核數】 'max_request' => 10000, //設置每個worker進程的最大任務數。【默認值:0 即不會退出進程】 'daemonize' => 0, //開啟守護進程化【默認值:0】 )); //監聽WebSocket連接打開事件 $this->serv->on('open', function ($serv, $req) { echo "connection open: {$req->fd}" . PHP_EOL; }); //監聽WebSocket消息事件 //客戶端向服務器端發送信息時,服務器端觸發 onMessage 事件回調 //服務器端可以調用 $server->push() 向某個客戶端(使用 $fd 標識符)發送消息,長度最大不得超過 2M $this->serv->on('message', function ($serv, $frame) { echo "Message: {$frame->data}". PHP_EOL; $this->serv->push($frame->fd, "server: {$frame->data}"); }); //監聽WebSocket連接關閉事件 $this->serv->on('close', function ($serv, $fd) { echo "connection close: {$fd}". PHP_EOL; }); //啟動服務 $this->serv->start(); } } $webSocketServer = new WebSocketServer(); ``` ## **二,運行WebSocket服務** >[danger] **需要用php CLI模式運行** ![](https://img.kancloud.cn/42/93/4293c2b905840112709ca35acc7c002c_521x34.png) ## **三,測試** 可以使用 Chrome 瀏覽器進行測試,JS 代碼為: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <script> var wsServer = 'ws://212.64.29.192:9604'; var websocket = new WebSocket(wsServer); websocket.onopen = function (evt) { console.log("Connected to WebSocket server."); //發送消息 websocket.send("我發送的消息"); }; websocket.onclose = function (evt) { console.log("Disconnected"); }; websocket.onmessage = function (evt) { console.log('Retrieved data from server: ' + evt.data); }; websocket.onerror = function (evt, e) { console.log('Error occured: ' + evt.data); }; </script> </body> <html> ``` 打開瀏覽器的控制臺,可以看到客戶端已經正常收發消息 ![](https://img.kancloud.cn/40/92/4092460f9c6cf9a100818567a6d77961_1139x388.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看