<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 服務器 WebSocket 是基于 HTTP 之上實現的協議,因此 WebSocket 也同樣是使用的 HttpServer::class 然后通過 Upgrader::class 把連接升級為 WebSocket 長連接。 ## 啟動 啟動服務器: ~~~ php bin/mix.php ws:start ~~~ 以上命令的各部分拆解如下: - `bin/mix.php` 為入口文件 - `ws:start` 為命令 查看幫助: ~~~ php bin/mix.php ws:start --help ~~~ `ws:start` 包含以下可選參數: - `-d, --daemon` 程序在后臺執行 - `-h, --host` 指定服務器 IP - `-p, --port` 指定服務器端口 - `-r, --reuse-port ` 端口復用,用于多開利用多核 ## 入口代碼 從 `manifest.php` 的 `commands` 或者 `commandPath` 配置我們能看到 `ws:start` 命令啟動的是: [>> \App\WebSocket\Commands\StartCommand::class <<](https://github.com/mix-php/mix-skeleton/tree/v2.1/app/WebSocket/Commands/StartCommand.php) >[success] 服務器代碼都寫在 StartCommand::class 中,用戶能最大粒度的修改每一處服務器的執行細節 - StartCommand::class 屬性 `$patterns` 記錄了注冊的 URL 與對應的處理器。 - 通過 `$this->handle` 方法將 [$patterns](https://github.com/mix-php/mix-skeleton/tree/v2.1/app/WebSocket/Commands/StartCommand.php#L35) 設定的 `/websocket` 升級為 WebScoket 連接,并使用 [WebSocketHandler::class](https://github.com/mix-php/mix-skeleton/tree/v2.1/app/WebSocket/Handlers/WebSocketHandler.php) 來處理連接。 - WebSocketHandler::class 中采用 JSON-RPC 2.0 交互規范。 - WebSocketHandler::class 屬性 `$methods` 記錄了支持的 RPC method 與對應的控制器。 - WebSocketHandler::class 將注冊的消息 `join.room`、`message.emit` 轉發到 JoinController::class、MessageController::class 處理。 ## 命令管理 與 mix 之前版本不同的是,新版只提供了 start 命令,這是因為新版 mix 是單進程協程框架,因為是單進程所以可以直接通過 kill 停止執行,停止是平滑安全的這一點能在 StartCommand::class 的源碼中看到實現邏輯: ``` // 查找名為 mix 的進程 $> ps -ef | grep mix // kill指定pid $> kill [PID] ``` ## 熱更新 (僅限開發階段使用) 為了提升開發效率,我們提供了 [https://github.com/mix-php/swoolefor](https://github.com/mix-php/swoolefor) 工具,能監控文件系統變化,通過設置的命令自動重啟服務器,可用于修改代碼后自動重啟各種 Swoole 常駐服務器 (僅限開發階段使用)
                  <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>

                              哎呀哎呀视频在线观看