Socket.io 無限連線請求的問題
二月 24, 2018
前言
最近再玩 Feathers.js 串 Socket.io 發生 Server 有收到 Client 連線請求並送出回應, Client 卻一直沒收到 socket ID , 導致 Client 再收到 Server 回應後又送一次沒有 socket ID 的請求,然後 Server 又收到沒有 socket ID 的連線請求, … (無限迴圈) 。
前言的結果
在 Browser 的 Network 會看到以下畫面
然後你的電腦會變成暖暖包!
解法
檢查 Server side 和 Client side 的 Socket.io 的大版號!
Server side 使用 v2 , Client side 使用 v1 時既會發生無限連線請求的情況;
Server side 使用 v1 , Client side 使用 v1 / v2 皆可以正常運作。
畫成表格會長這樣
Socket.io@1 (Server) | Socket.io@2 (Server) | |
---|---|---|
Socket.io@1 (Client) | ✔ | ✖ |
Socket.io@2 (Client) | ✔ | ✔ |
結語
沒有錯誤訊息的問題,加上 Server 和 Client 都有收到回應與請求,因此花了一些時間找問題。
建議 Server 和 Client 使用 Socket.io 時,使用同樣的大版號,可以避免此情況的發生。
- 文章標題: Socket.io 無限連線請求的問題
- 文章連結: https://blog.ivanwei.co/zh-tw/2018-02-24-socket-io-has-infinite-connect/
- 版權聲明: CC BY-NC-ND 4.0