排查Heroku 上的Web Socket 關閉錯誤(H15)
在Heroku 上部署WebSocket 伺服器時,可能會遇到H15 錯誤:客戶端關閉連線。這個錯誤通常被解釋為超時問題,讓開發人員感到困惑。然而,此錯誤的根本原因是 Heroku Router 引擎內的誤解。
詳細調查該行為後,很明顯該錯誤只是一個「誤報」。客戶端通常每 20 秒 ping 一次伺服器,從而有效地保持連線處於活動狀態。然而,當連線關閉時,Heroku 路由器會錯誤地將請求視為在開啟連線的整個持續時間內(最多 55 秒)處於空閒狀態。
因此,當客戶端關閉連線時,即使很優雅,Heroku 路由器也會將其註冊為服務時間超過允許的持續時間,從而觸發 H15 錯誤。
總而言之,關閉 WebSocket 連線時 Heroku 上的 H15 錯誤並不是真正的問題,而是由Heroku 路由器。它通常發生在用戶離開應用程式時,導致感知到的“時間太多”錯誤。
以上是為什麼 Heroku 會回報關閉 WebSocket 連線的 H15 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!