私が構築しているチャットサービスでは、サーバーから直接メッセージを送信する必要があります。
私は解決策を見つけられませんでした、ドキュメントに例があります:
// SERVER
io.sockets.on('connection', function (socket) {
socket.on('ferret', function (name, fn) {
fn('woot');
});
});
// CLIENT
socket.on('connect', function () { // TIP: you can avoid listening on `connect` and listen on events directly too!
socket.emit('ferret', 'tobi', function (data) {
console.log(data); // data will be 'woot'
});
});
しかし、私が必要とするものの反対をします!
emit
サーバーからを実行し、クライアントから受信確認を受け取る必要があります。
これを行う方法はありますか?
サーバーメッセージがクライアントに到達する前に接続が切断される可能性があるため、保証はありません。したがって、「clientGotMessage」のようなイベントもサーバー上にありません。メッセージがユーザーに到達しなければならない場合、クライアントでメッセージを受信したことをサーバーに通知する以外に方法はありません。
番号を送信することで、これを「簡単に」行うことができます。クライアントとサーバーはその数を追跡します。サーバーが送信するたびにカウントアップし、クライアントが受信するたびにカウントアップします。クライアントが何かを送信すると、番号が送信されるため、サーバーはクライアントにすべてがあるかどうかを確認します。クライアントがメッセージを見逃した場合、次のメッセージには、クライアントが受け入れない番号が付けられ、失われたメッセージをサーバーに要求します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加