私はSocket.Ioを使用しています。ExpressJSに接続するAngular 2の1.7.3です。特定のソケットID、実際に一致するイベントにパッケージを送ることはできません。Socket.io特定のソケットに送られていません
Serverの実装:
socket.on('subscribeNotification', function(data){
// Get new notification by user_id here ....
console.log('Got notification request');
console.log('Your Id is: '+socket.id);
socket.broadcast.to(socket.id).emit('sendNotificationsToUser', {
text: 'hello',
id: socket.id
});
socket.emit('claimId', {
id: socket.id
});
});
そして角2実施に関する:
subscribeNotificationEvent(userId: string) {
let socket = this.socket;
let data = {
user_id: userId
};
// Emit socket
socket.emit('subscribeNotification', data);
}
listenToNotification() {
let socket = this.socket;
socket.on('sendNotificationsToUser', function (data) {
console.log('I hear it !');
});
socket.on('claimId', (data) => {
console.log('My id is: ' + data.id);
})
}
ロギング結果
サーバー:
Got notification request
Your Id is: bSCHMUL2bJJQCXkxAAAC
クライアント:それはライン'I hear it !'
をログアウトすることはできませんので
My id is: bSCHMUL2bJJQCXkxAAAC
クライアントは、sendNotificationsToUser
イベントを受信しません。
私はSending message to specific client in Socket IOにも言及していますが、動作しません。
を使用し、ソケットにのみ送信otの場合? – rpadovani
@rpadovani私はhttps://socket.io/docs/server-api/から入手しました。彼らの公式文書の例: 'client.broadcast.to(id).emit( '私のメッセージ'、msg);' – ThangLeQuoc