[英]netty-socketio: client did not complete upgrade - closing transport
我有一個運行netty-socketio的套接字服務器和一個使用socket.io-client JS庫連接到它的Web應用程序。
問題是我失去了一些連接(不是全部,比如說20%)。
對於丟失的連接:客戶端建立連接后,服務器立即記錄client did not complete upgrade - closing transport
並斷開客戶端連接。
這發生在我的生產服務器(使用nginx作為代理)以及我的本地環境(直接連接到netty-socketio服務器)上。 這幾乎是隨機的,我無法確定其上的圖案。 例如,如果我持續不斷地刷新瀏覽器上的客戶端應用程序(間隔為5秒),則有時會發生此錯誤,並且在隨后的嘗試中它將再次正常運行(直到再次發生)。
這是netty-socketio庫上的錯誤: https : //github.com/mrniko/netty-socketio/blob/master/src/main/java/com/corundumstudio/socketio/transport/WebSocketTransport.java#L196但我無法弄清楚為什么它是隨機發生的(第一次嘗試有時會發生)
任何對此的想法都非常感激。
謝謝
經過一些研究和測試,我發現使用netty-socketio作為服務器時,需要在客戶端指定傳輸方法。
var socket = io('server-address', { transports: [ 'polling' ] });
// or
var socket = io('server-address', { transports: [ 'websocket' ] });
如果未指定,則將使用輪詢作為傳輸方法來建立連接,netty將自動嘗試將其升級到websocket。 這是導致連接失敗的原因。
指定傳輸方式后,到目前為止,我的連接失敗率為0%。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.