1
Я пытаюсь издать уведомление одному клиенту, но испускание не срабатывает вообще, в то время как broadcast.emit работает нормально. Но проблема в широковещательной передаче уведомляет всех клиентов, даже если я поставляю socket.id.Socket.io emit не работает, но широковещательная передача
Кто-нибудь знает, что я сделал не так?
var app = express();
var querystring = require('querystring');
var server = http.createServer(app);
var io = require('socket.io').listen(server);
var clients = {};
io.sockets.on('connection', function(socket) {
socket.on('subscribe', function(userID) {
clients[userID] = socket.id;
});
socket.on('notifyMsg', function(data) {
var obj = JSON.parse(data);
for(var i=0; i<obj.info.notifyUserIDs.length; i++) {
var to = clients[obj.info.notifyUserIDs[i]];
if(to) {
// Doesn't work
io.sockets.socket(to).emit('notification', data);
// Works
//io.sockets.socket(to).broadcast.emit('notification', data);
}
}
});
});
Привет, я тоже пробовал это, но испускание просто не срабатывает вообще. Я также попробовать console.log (к), и я получить выход объекта {ID: 'BErkIOeBJP2lsU2OMJxn', пространство имен: {менеджер: {Сервер: [Объект], пространств имен: [Object], розетки: [Круговая ], _events: [Object], настройки: [Object], handshaken: [Object], подключен: [Object], открыт: [Object], закрыт: {}, номера: [Объект], roomClients: [Object], oldListeners: [Object], sequenceNumber: 1714461803, gc: [Object]}, –
Это выглядит хорошо для меня. можете ли вы нюхать сообщение на проводе? Я имею в виду, что сокет выглядит нормально, поэтому, возможно, он что-то куда-то отправляет. –
Извините, как понюхать провод? Возможно ли вам проверить его на вашей стороне, пожалуйста? Моя клиентская сторона - только socket.on ('уведомление', функция (res) { console.log ("browser =" + res) }); –