これがシナリオです。node.js+socket.ioアプリケーションとは別のサーバーでPHPによって提供されるクライアント側アプリケーションがあります。サーバーから送信されたブロードキャストを接続して受信できます。接続が切断されると、アプリケーションはデータベースのポーリングにフォールバックします(を使用setInterval()
)。5回のポーリングごとに再接続を試み、正常に再接続してメッセージの受信を継続できます。
ユーザーがページをロードし、ノードサーバーに到達できない場合(テストのためにオフにしました)、サーバーの電源をオンにし、5回目のポーリングで、を使用してサーバーに正常に接続すると、問題が発生しますsocket.socket.reconnect();
。ただし、サーバーがメッセージをブロードキャストするときは常に、イベントは発生しません。これは、電話でテストする場合には発生しないことに注意してください(別のソケット方式にフォールバックします)
`socket.on('message'、function(){})`のsocket.ioの問題でここにある質問をすでに見ましたが、ソケットは以前に接続されていなかったので、接続できなかったと思いますセッション?
編集:私はに変更socket.socket.reconnect()
しsocket.socket.connect()
、それは問題を修正しました。誰かがこれがうまくいく理由を説明できたら私は知りたいです。サーバーが実際に再接続していないのでわかりますが、詳細を知りたいです。
ありがとう。