socket.io の作業を行っています。私の放出コールバックが起動されていないようです。私はそれを正しくやっていますか?
this.logger.debug("joining room " + roomId);
callback = function() {
return this.logger.debug('finished emitting join for socket');
};
// this.config.ioTypes.join resolves to "j"
this.socket.emit(this.config.ioTypes.join, {
user: this.config.user,
room: roomId
}, callback);
私のログは正しいようです (上記のコードには、これらのログを生成するすべてが含まれているわけではないことに注意してください)。
DEBUG: joining room 1245 <-- first line from code above
DEBUG: join event for socket etQIXGAm59DYkCPk1_gj
DEBUG: data: { user: 1, room: '1245' }
DEBUG: received join event for 1, data: { user: 1, room: '1245' }
そして、それは終わりです。socket.io がコールバックを呼び出していないようです。しかし、ドキュメントはかなり明確です:
クライアントがメッセージの受信を確認したときに、コールバックを取得したい場合があります。
.send
これを行うには、 or の最後のパラメーターとして関数を渡すだけ.emit
です。さらに、 を使用する.emit
と、確認はユーザーによって行われます。つまり、データを渡すこともできます。
ここで何か間違ったことをしていますか?