php – swoole – 架設 websocket 簡單範例

安裝 swoole 擴展 以後,接著我們要示範是否能建立 websocket 給 Client 端。

swoole.php

  • $ws->push() 推送給 Client 端數據。參考
  • 在 callback 中的 echo, print_r, var_dump … 的輸出,都會顯示在 Command-Lind 而不是給 Client 端。

 

Client 的 JS 程式碼 index.html

 

使用 command line 觸發 Swoole

如果使用如 SSH 連接遠端主機下了這個指令,一旦關閉操作視窗後,運行 websocket 會停止。要是你希望 Linux 使用者離開後,服務仍然啟動,可以使用 screen 指令 (或 nohup 指令)。例如

這樣就會開始執行,但我們要將程序放到背景(卸離),所以按下 Ctrl + A 之後,再按 D 會出現類似

就代表已經放到背景了(參考)。如果要回到剛剛用 screen 執行的 swoole ,可以打上

要顯示哪些 php 被運行,可以使用

可使用 kill 指令刪掉來關閉服務

參考網友

瀏覽器運行

上方 onMessage 目前會將接收到的訊息,發送給所有人。也就是說,如果是A發送到 websocket,那麼 websocket 也會把訊息發送給 A,B,C,D…… 如果自己發送的訊息不想接收到,可以參考進階範例

Comments

發表迴響