問題: 難以建立從Docker 容器外部的客戶端到容器內的伺服器的WebSocket連接。
您的程式碼使用 http.Server{Addr: "localhost:8000"},這限制了伺服器偵聽容器內的環回介面 (127.0.0.1)。由於客戶端位於容器外部,因此無法連接到該位址。
解決方案:
要解決此問題,請將伺服器監聽位址指定為http.Server {Addr: ":8000"},指示伺服器監聽容器內所有可用的IP 位址。
其他資訊:
當連接埠暴露在 Docker 容器中,Docker 建立 iptables 規則以將流量從主機轉送到容器。這些規則確保請求到達容器內的正確 IP 位址和連接埠。您可以使用以下命令查看這些規則:
透過調整監聽位址,您的伺服器現在可以接受來自 Docker 容器外部客戶端的 WebSocket 連接,從而實現它們之間的通訊。
以上是為什麼我的客戶端無法連線到 Docker 容器內的 WebSocket 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!