簡體   English   中英

netty-socketio:客戶端未完成升級-關閉傳輸

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM