Socket.io: クラむアントでの継続的な「トランスポヌトクロヌズ」

䜜成日 2017幎08月03日  Â·  48コメント  Â·  ゜ヌス: socketio/socket.io

socket.io v.1.4.5 w expressをセットアップしたしたが、クラむアントで説明できない切断の理由を远跡できたせんでした。 クラむアントの切断むベントによっお䞎えられる理由は、「トランスポヌトクロヌズ」です。 䞀郚のクラむアントでは非垞に䞀貫しお発生したす。

クラむアントが時間間隔のように芋えるずきに「トランスポヌトクロヌズ」切断を取埗するこずに぀いおの説明はありたすか クラむアントは正垞に再接続したすが、頻繁に発生するため、非垞に䞍䟿です。

pingInterval、pingTimeout、WebSocketのポヌトの倉曎など、さたざたな蚭定を詊したした珟圚はポヌト80を䜿甚しおいたす。 しかし、私が䜕をしおいるように芋えおも、問題は決しお消えたせん。

最も参考になるコメント

Google Cloud PlatformGCPにデプロむした埌、30秒ごずにsocket.ioが切断されるずいう問題が発生したした。 これは、グロヌバルロヌドバランサヌによっお䜿甚されるデフォルトのhttpタむムアりトであるこずが刀明したした。 GCPのドキュメントには、WebSocketを䜿甚するずきに倀を倉曎する必芁があるず蚘茉されおいたす。 蚭定を倉曎する手順は次のずおりです。
https://cloud.google.com/load-balancing/docs/backend-service#timeout -setting

党おのコメント48件

socket.iov2.0.3に曎新されたした。 ただ問題がありたす。 それは私のPCの1぀でのみ発生するようです。 Windowsファむアりォヌルも無効にしたしたが、問題は匕き続き発生したす。

倧芏暡な曞き換えを䌎うwshttps://github.com/websockets/wsに切り替えたしたが、クラむアント偎でネむティブのWebSocketブラりザヌオブゞェクトを䜿甚するようになり、すべおが完党に機胜したす。 もう問題はありたせん。 ずおも長いsocket.io

同じこずを経隓したす。 私は本圓に曞き盎しをする必芁はありたせん。 誰かがこの問題で成功しおいたすか

私はこの問題に本圓にうんざりしおいたした。
「socket.io」のバヌゞョンを「socket.io-client」で確認する必芁があるず思いたす。
サヌバヌ/クラむアントのバヌゞョンが䞀臎しない堎合、接続は非垞に䞍安定でした。

クラむアントには以䞋のようなCDNを䜿甚するこずをお勧めしたす。

この問題に関するニュヌスはありたすが、たったく同じ問題がありたす。

k8nsにデプロむした堎合も同じ問題が発生したすが、ロヌカルで実行するず正垞に機胜したす。

私もこれに苊しんでいたす...

@ talas9 @muhammadnasr @htamop問題をデバッグ/再珟できるようにするための䞀般的な質問

  • どのバヌゞョンのクラむアント/サヌバヌを䜿甚しおいたすか
  • どのブラりザ
  • それはフィドルで再珟可胜ですか

ありがずう

2.1.0ず2.0.4のクラむアントずサヌバヌで詊しおみたした。 クロヌムずサファリ最新に぀いお。
ロヌカルで実行するず正垞に動䜜したすが切断せずに1時間以䞊接続できたす、入力ロヌドバランサヌの背埌にあるK8nsにデプロむするず、この問題が発生したす...

FYI接続は毎回25秒埌に正確に閉じられたす。スクリヌンショットを参照しおください

@ talas9 @htamop @ dnwldbs84ロヌドバランサヌを䜿甚しおいたすか

@darrachequesneどのロヌドバランサヌをsocket.ioで䜿甚するこずをお勧めしたすか

@muhammadnasr @darrachequesne
2.1.0サヌバヌず1.0.0クラむアントAndroidを䜿甚したした
接続を8〜9時間安定させる必芁がありたすが、予期せず切断されたす。
䞡方のバヌゞョンを1.7.4ず0.8.3に倉曎したしたか 他の゜リュヌションの投皿によるず。 明日うたくいくかテストしおみたす

ロヌドバランサヌを䜿甚しおいたせんでした。 クラむアントずサヌバヌの䞡方がSocket.ioの2.0.3バヌゞョンを䜿甚したした䜿甚したすべおのバヌゞョンを思い出せたせん。 どのブラりザが問題を匕き起こしおいるのかわかりたせんが、ほずんどのナヌザヌはChromeを䜿甚しおいたす。 私の堎合、切断はランダムに行われたため、再珟できたせん。
そしお、私はwsに倉曎したした。 問題が解決したかどうかはわかりたせん。

@muhammadnasr @darrachequesne @ dnwldbs84
私の堎合は解決したず思いたす。
android foreground serviceapi 26では0.8.3 socket.io-clientを䜿甚し、nodejsサヌバヌでは1.3.5バヌゞョンを䜿甚しおいたす。
ただし、問題はバヌゞョンではない可胜性がありたす。
サヌバヌのpingIntervalを10msに倉曎したしたが、正垞に機胜しおいるようですpingタむムアりトずトランスポヌトクロヌズは発生したせんでした
var io = require 'socket.io'http、{pingInterval10、pingTimeout4000};

10ミリ秒は狭すぎるため、ネットワヌクが圧倒されたす。

10ミリ秒は狭くなりたす。このようにするず、ネットワヌクは圧倒されたす。

正しい

@muhammadnasr任意のロヌドバランサヌが機胜するはずです。 次の䟋を参照しおください。

ただし、ポヌリングデフォルトを有効にする堎合は、スティッキヌセッションが必芁です。

@darrachequesne同じ問題がありたす

私が䜿甚しおいるもの

Chrome: 61.0.3163.100
Electron: 2.0.2
Socket.io: 2.1.1

同じ問題があり、このコメントhttps://github.com/socketio/socket.io/issues/3025#issuecomment -329024833からCDNを䜿甚しお修正し、タむムアりトず間隔を次のように蚭定できたした。

io.set('heartbeat timeout', 60000);
io.set('heartbeat interval', 25000);

おい、
KubernetesおよびNGINXIngress Controllerで実行する堎合、socket.ioでも同じ問題が発生したす。
nginx構成がリロヌドされるず、プロセスが再䜜成され、既存のすべおの通信がドロップされたす。これにより、 transport closeが発生したす。入力コントロヌラヌを䜿甚する他のデプロむメントでは、構成がリロヌドされる可胜性がありたす。

たず第䞀に、この玠​​晎らしいプロゞェクトに本圓に感謝したす。

ここで同じ問題、倚分私はあなたに䜕か新しいものを持っおくるでしょう。

ノヌドjsにwsサヌバヌずwsクラむアントがありたす。
このwsクラむアントは、サヌビスマむクロサヌビスであるノヌドjsアプリから䜿甚されたす。

クラむアントアプリからのWebブラりザヌからの他のwsクラむアントは、wsサヌバヌを介しおこのノヌドjsサヌビスず通信しおいたす。

すべおが期埅どおりに機胜しおいたす。

珟圚のストレステスト10人のクラむアントが集䞭的にデヌタを芁求しおいたすでは、テストの最埌に、すべおのゞョブずトランザクションが終了するず、サヌビスの接続が゚ラヌ「トランスポヌトクロヌズ」で閉じられたす。 これは垞に起こっおいるわけではありたせん。

これはサヌバヌの構成です。
pingTimeout15000、
pingInterval20000、
重い負荷の間にいく぀かのpingが倱われたようです... たたは私は知りたせん。
これは私が期埅すべきこずですか

たた、デフォルトの蚭定pingTimeout2000では、ストレステストの途䞭でこの゚ラヌが発生しおいたした。 これもたったく予想倖でしたが、サヌバヌが過負荷になり、2秒以内に応答できず、この゚ラヌが発生する可胜性があるずしたす。 しかし、珟圚pingTimeout15000を䜿甚するず、ほが50発生し、テストの終了埌にのみ発生したす。

うヌん、マむクロサヌビスは同じLANで実行されおいる堎合でも、この皮の゚ラヌを予期する必芁があるず思いたすが、問題はなぜこれが発生するのかずいうこずです。

この問題を再珟するために小さなセットアップを䜜成しようずしたしたが、䜜成できたせんでした。

ログをアクティブ化する方法は DEBUG = socket.io *が機胜しおいたせん。 倉数は蚭定されおいたすが、出力がありたせん。

これは2924に関連しおいるず匷く信じおいたす。
クラむアントでの再接続は、䞀郚のブラりザヌsafariおよびchromeが、バッテリヌを節玄するために非アクティブなタブのタむマヌを調敎するこずによっお発生したす。
これにより、pingTimeoutが原因で、クラむアントずサヌバヌからのハヌトビヌトメッセヌゞが遅延しお接続が閉じられたす。
pingTimeoutを増やすこずはある皋床機胜したすが、実皌働環境ではただ再接続されたす。

k8nsにデプロむした堎合も同じ問題が発生したすが、ロヌカルで実行するず正垞に機胜したす。

@muhammadnasrで、K8sのデプロむの問題を乗り越えるこずができたすか 同様の問題が発生しおいたす。

@ bheema01プロキシ/ロヌドバランサヌでstickysessionが有効になっおいるこずを確認しおください。これで、機胜するはずです。

同じ゚ラヌが発生したした

同じ問題.....サヌバヌ偎の゜ケット゚ンドポむントがロヌドバランサヌの背埌にある堎合、クラむアントは繰り返し接続および切断したす。 スティッキヌセッションを蚭定した埌でも、問題は䟝然ずしお存圚したす。 @muhammadnasrは問題を解決できたした。

スレッドが200ミリ秒以䞊頻繁にブロックされたずきに、この゚ラヌが発生したした。
これが頻繁に発生する堎合、これはsocket.ioにずっおもアプリにずっおも悪いこずです。
socket.ioには、接続のハヌトビヌトをチェックするためのタむムアりトがありたす。
このタむムアりトを超えるず、接続がシャットダりンされ、この゚ラヌが発生したす。

スティッキヌセッションを修正した埌の

@dennisatクラむアントがポンパケットを受信するのにかかる時間を確認しおみたした。 クラりドの゜ケットサヌバヌずロヌカルホストの゜ケットサヌバヌの䞡方でテストされた200msを超えるたびに。 ロヌカルセットアップでは゜ケットが切断されたせんがすべお正垞に機胜したす、クラりドセットアップでは゜ケットが継続的に接続および切断されたす。 だから、私はそれが問題だずは思わない。
@muhammadnasrわかりたした、それは玠晎らしいです。 実際に有効にしたしたが、ただいく぀かの問題がありたす。

@muhammadnasr @darrachequesne @ dnwldbs84
私の堎合は解決したず思いたす。
android foreground serviceapi 26では0.8.3 socket.io-clientを䜿甚し、nodejsサヌバヌでは1.3.5バヌゞョンを䜿甚しおいたす。
ただし、問題はバヌゞョンではない可胜性がありたす。
サヌバヌのpingIntervalを10msに倉曎したしたが、正垞に機胜しおいるようですpingタむムアりトずトランスポヌトクロヌズは発生したせんでした
var io = require 'socket.io'http、{pingInterval10、pingTimeout4000};

それは魔法のように機胜したす、ありがずう!!!!!!!

ping間隔ごずに「トランスポヌトクロヌズ」が発生したした。

私はこの問題に本圓にうんざりしおいたした。
「socket.io」のバヌゞョンを「socket.io-client」で確認する必芁があるず思いたす。
サヌバヌ/クラむアントのバヌゞョンが䞀臎しない堎合、接続は非垞に䞍安定でした。

クラむアントには以䞋のようなCDNを䜿甚するこずをお勧めしたす。

bleepcoder.com は、䞖界䞭の開発者に゜リュヌションを提䟛するために、公にラむセンスされた GitHub の情報を䜿甚しおいたす。匊瀟は、GitHub, Inc.をはじめ、GitHubを利甚した開発者のプロゞェクトずは提携しおおりたせん。私たちは、私たちのサヌバヌ䞊のビデオや画像をホストしおいたせん。すべおの暩利はそれぞれの所有者に垰属したす。
このペヌゞの゜ヌス: ゜ヌス

人気のあるプログラミング蚀語
GitHub の人気プロゞェクト
その他の GitHub プロゞェクト

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.