首頁  >  文章  >  後端開發  >  面對「連線被對等點重置」時,如何對 WebSocket 伺服器進行 Docker 化?

面對「連線被對等點重置」時,如何對 WebSocket 伺服器進行 Docker 化?

Patricia Arquette
Patricia Arquette原創
2024-11-07 08:55:03543瀏覽

How to Dockerize a WebSocket Server When Facing

Docker化 WebSocket 伺服器

您可能會在 Docker 中容器化 WebSocket 伺服器時遇到困難。本文提供了解決此問題的指導。

場景:

您有一個 WebSocket 伺服器程式碼 (server.go) 和一個客戶端 (client.go)。在 Docker 容器外部執行這些檔案不會出現任何問題。然而,容器化伺服器後,從容器外部連線會出現錯誤:

panic: read tcp [::1]:60328->[::1]:8000: read: connection reset by peer

原因:

問題出在伺服器監聽位址。預設情況下,伺服器偵聽本機主機 (127.0.0.1)。這在容器外部運行時沒問題,但在容器內部,該位址無法存取。

解決方案:

要解決此問題,請將監聽位址變更為 0.0.0 .0.0:8000,指示伺服器監聽其所有容器的 IP 位址。

server := http.Server{Addr: ":8000"}

說明:

透過揭露Docker 容器中的連接埠(例如,-p 8000:8000),Docker 建立流量轉送至容器的IP 位址。透過監聽 0.0.0.0:8000,伺服器確保它接受轉送到其容器 IP 位址的連線。

以上是面對「連線被對等點重置」時,如何對 WebSocket 伺服器進行 Docker 化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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