2

メッセージがサーバーに正しく送信されたことを確認するために、クライアント側でいくつかの検証を追加しようとしています。

サーバーがダウンすると、コールバック関数が起動せず、メッセージが正しく配信されたかどうかをクライアントに伝えることができません。私のクライアント (モバイル クライアント) が信号を失うと、同じことが起こります。

クライアントで接続エラーを処理するにはどうすればよいですか?

ご協力いただきありがとうございます。

socket.emit('send', JSON.stringify(msg), function (res) {
    if(res)  { 
        $messages.unshift(msg); 
    }
    else { 
      $scope.$emit('triggerError',  { message: 'Unable to send your message.', temp: true });
    }
}); 
4

2 に答える 2

1

socket.on('disconnect', ...) コールバックを使用してみましたか? socket.ioのドキュメントによると、これはクライアントが切断されたことを検出する方法です。socket.io は Web ソケットを使用し、Web ソケットはアクティブな接続を確立するため、接続が失われるとすぐにソケットが切断され、このコールバックがトリガーされます。

私は自分のプロジェクトでそれを使用しましたが、うまくいきます。クライアント側で使用したことはありませんが、おそらく機能します。

于 2013-11-10T22:23:35.407 に答える
0

この目的のためにいくつかのイベントがあります。「エラー」にバインドできます。何らかのエラーが発生すると、このイベントがトリガーされます。「切断」でバインドできます-サーバーからの切断を検出できます。

于 2013-11-10T22:34:52.757 に答える