php – WebSocket 架設

安裝套件

我們使用 Ratchet 這款 PHP WebSocket 架設。使用這款套件是不需要安裝其他元件,安裝執行比較簡單,但我後來推薦使用 Swoole 這個效能很好的 PHP 擴展,Swoole 在一開始安裝上稍微麻煩一點,但在後續使用上會簡單許多。以下介紹 Ratchet 的安裝方式:

我們使用 composer.json 安裝,先建立 /composer.json

雖然官方範例使用 psr-0 較舊的規範,不過不會影響我們的範例。接著運行指令下載

建立應用程式 (Application)

在 /src/MyApp/Chat.php 建立這個官方範例

結構上會是這樣

實體化

Chat.php 是我們應用程式的類別,我們需要將它實體化運行。在 /bin/chat-server.php 加入

我們建立個一個輸入/輸出的服務類別,並告訴伺服器運行的事件要不斷循環,並監聽 Port 8080 的任何請求。我們打開 terminal ,來到跟目錄底下運行

這就我們的程式已經開始執行監聽了。

開始溝通

首先,我們建立 2 個 HTML 來示範。/index.html 與 /send.html。

index.html

打開網址 http://localhost/index.html 在 Console 的地方會看到連線已經建立

然後可以看看 terminal 出現了新連線的提示、還有接收到什麼訊息

接著 send.html 寫入

打開網址 http://localhost/send.html 在 Console 的地方會一樣會看到連線已經建立。

回到 index.html 會發現 Console 出現接收到的字串

不論重新整理 index.html 或 send.html 都能再另外一方接收到傳遞訊息。我們可以看到連線狀態都保持 websocket 的連線。

影片示範

發表迴響