2016-07-23 6 views
3

メッセージが配信されないことを示すために、クライアント側のUIを更新する必要があります。メッセージの配信に失敗したときに、Socket.IO JSクライアントがカスタムコールバックを直接呼び出す方法を教えてください。たとえば、次のようなものがあります。クライアント側のSocket.IOメッセージ配信エラーの検出

socket.emit("event", data).onError(myCallback); 

私はSocket.IOが配信成功を確認するためのAckメカニズムを提供していることを知っています。したがって、一定時間後にackが呼び出されなければ、失敗のコールバックを呼び出すハンドラでタイマーを設定することができます。しかし、これは最善の方法ではないようです。

また、Socket.IOによって提供されるエラーイベントがありますが、エラーが発生したエミットに関する情報は表示されません。

答えて

1

は残念ながらコールバックからのエラーを取得する方法はありません、唯一の方法は、実際にあなた自身のタイムアウトを作成することです:

var timeoutId = setTimeout(timeoutErrorFn, 500); 

var acknCallbackFn = function(err, userData){ 
    clearTimeout(timeoutId) 
    //manage UserData 
} 

socket.emit('getUserData', acknCallbackFn); 

Source of the code

をそして、このことについて、別の問題が、そうopen

があります当面はあなたのマニュアルのsetTimeoutに固執する必要があります。

関連する問題