首頁  >  文章  >  後端開發  >  為什麼我的客戶端無法連線到 Docker 容器內的 WebSocket 伺服器?

為什麼我的客戶端無法連線到 Docker 容器內的 WebSocket 伺服器?

Susan Sarandon
Susan Sarandon原創
2024-11-06 22:26:02262瀏覽

Why Can't My Client Connect to My WebSocket Server Inside a Docker Container?

對WebSocket 伺服器進行Docker 化故障排除

問題: 難以建立從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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn