0

サンプルのチャット ドキュメントから単純な node.js socket.io チャットを作成しました。これが私たちが立ち往生している問題です。

  • A 人がチャットのために B 人をクリックすると、「会話を開始する準備ができました」と表示されます。
  • 彼らがメッセージを送信しても何も起こらず、エンターを押すだけでメッセージがクリアされ、AもBもそれを見ません。
  • しかし、f5 を両方とも実行すると、「会話を開始する準備ができました」と再度表示され、問題なくチャットできるようになります。
  • この最初のトリガーを使用すると、すべてのチャットを f5 なしで行うことができます。たとえば、1 ~ 5 時間後に C の人が D の人をクリックすると、問題なく会話を開始できます。
  • しかし、何の会話もない日が過ぎた場合、その日に最初に会話を始める人は、何らかのトリガーを作成するために f5 を作成する必要があります。その後は誰でも問題なく起動します。

サーバーは、ある種のタイムアウトまたはスクリーンセーバー モードになります..! 最初の会話の人は常に f5 にしなければなりません。その後、それは 1 日動作します.. 私は何を探すべきかについてのガイダンスが必要なコードや何かを送っていません。Node.js? socket.io? このばかげた問題の原因は何ですか? どうも

4

1 に答える 1

2

しかし、何の会話もない日が過ぎた場合、その日に最初に会話を始める人は、何らかのトリガーを作成するために f5 を作成する必要があります。その後は誰でも問題なく起動します。

これは、クライアントが再接続することなく、Websocket 接続を数日間開いたままにしようとしているように聞こえますか?

この場合、クライアント側の問題である可能性があります。おそらく、ブラウザは長時間の後に websocket-connection を閉じます。Web アプリは接続の欠如を認識せず、「会話を開始する準備ができています」と表示します。しかし、ブラウザはサーバーにメッセージを送信しなくなりました。このスレッドを確認してください:接続を再確立する方法

いくつかのコードを示していただければ、非常に役立ちます。

よろしくお願いします

于 2013-02-25T09:27:59.380 に答える