Docker化 WebSocket 伺服器
問題
Docker化 WebSocket 伺服器
問題
開發人員在嘗試使用 Docker 容器化 WebSocket 伺服器時遇到問題。伺服器程式碼使用「connected」寫入新連接,並且在容器外運行良好,但當放置在Docker 容器內時,客戶端會因「連接重設」錯誤而出現恐慌,並顯示錯誤訊息「read tcp [: :1]” :60328->[::1]:8000: 讀取: 連線被對等方重設。 "開發者不確定需要進行哪些更改才能在容器內建立與伺服器的WebSocket 連線。
解決方案
要解決此問題,開發者需要修改伺服器的監聽位址。他們應該將其變更為“:8000”,而不是使用“localhost:8000”(這會限制伺服器偵聽容器內的IP 位址127.0.0.1)。一個偵聽伺服器準備好接受連線。規則將流量從主機轉送到容器來實現場景。 。
iptables -t nat -n -L
透過對監聽位址進行上述修改,並了解Docker的轉送機制,開發者可以在Docker容器內成功與伺服器建立WebSocket連接,解決「連接重設」問題”錯誤並啟用在客戶端列印“已連接”的預期行為。