首頁 > 後端開發 > Golang > 主體

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

Patricia Arquette
發布: 2024-11-07 08:55:03
原創
553 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!