9

ユーザーが常に接続する必要がある Web アプリケーションがあります。デフォルトでは、socket.io は 60 秒後に接続を切断します。ただし、「再接続」がオンになっているため、基本的には毎分接続を閉じて再開しています。これにより、接続しているクライアントへのフィード/通知で問題が発生する可能性があります。このタイムアウトを 10 分またはそれ以上に設定しても安全でしょうか? 今こんなに低いのには何か理由があるのですか?

4

3 に答える 3

11

私の推測では、'close timeout'構成を誤解している可能性があります。60 秒後に接続が閉じられることはありません。(クライアントが常に再接続する場合、ハートビートは無意味です)。

クライアントが切断した場合、close timeoutその接続に関連付けられたリソースを解放する前にサーバーが待機する時間です。基本的に、これにより、断続的な接続の問題があるクライアントは、サーバーがそれらを忘れる前に再接続を試みることができます。10 分に設定close timeoutすることは、サーバー リソースを占有するため、おそらくお勧めできません。

実際、クライアントが 60 秒ごとに切断している場合は、samjm が言ったように、何か他のことが間違っています。

于 2013-03-26T08:13:59.077 に答える
3

ソケットが 60 秒後に切断されるとは思えません。なぜそれが実際に起こっているのかを調査します。正しくハンドシェイクした後、クライアントまたはサーバーのいずれかが接続を閉じるまで、ソケットはハートビートし、無期限に開いたままにする必要があります(ネットワークの問題を制御できません)。これは間違いなく私の経験です。

接続が実際に閉じているという事実は、ハンドシェイクが正しくないか、ハートビートが受信されていないように聞こえます.

于 2013-03-26T07:13:58.127 に答える