網頁

2022/12/12

Golang WebSocket read: websocket: close 1006 (abnormal closure): unexpected EOF

今天在測試Go的WebSocket連線時,剛開始client都可收到訊息,但過一陣子卻發生收不到訊息的狀況,檢查log看到read: websocket: close 1006 (abnormal closure): unexpected EOF的訊息。


問題環境:

  • Go 1.19
  • github.com/gorilla/websocket v1.5.0

Go的WebSocket是使用gorilla/websocket

WebSocket Protocal Status code 1006是指連線在未收到close control frame的情況下關閉,即非正常的關閉。

查發現原因可能是出在測試環境對外有使用nginx反向代理,而nginx預設從server得到的回應時間timeout為60秒(proxy_read_timeout 60s),因為client與server中間透過nginx溝通,又測試時可能一段時間沒操作超過上面預設的timeout限制所以發生close 1006 (abnormal closure): unexpected EOF的訊息導致WebSocket連線中斷。

在本機測試時因為沒有nginx即使server長時間未回應也會保持連線。


沒有留言:

張貼留言