J'utilise Redis avec socket.io:Socket.IO TypeError: Impossible de lire la propriété 'diffusion' undefined
var io = require('socket.io')(6001);
var Redis = require('ioredis'),
var redis = new Redis();
redis.psubscribe('*');
redis.on('pmessage', function (pattern, channel, message) {
message = JSON.parse(message);
io.sockets.connected[message.data.senderID].broadcast.emit(channel + ':' + message.event, message.data);
});
Je reçois ceci:
TypeError: Cannot read property 'broadcast' of undefined at Redis. (C:\socket\htdocs\project\server.js:12:46) at emitThree (events.js:135:13) at Redis.emit (events.js:216:7) at Redis.exports.returnReply ...
Quel est le problème? console.log(message.data.senderID);
imprime la douille ok. Merci ..
J'utilise 2.0.3 (ressemble à la dernière). J'envoie un socket de laravel, pas de js. '\ Event :: fire (new NewTopicCreated ($ _COOKIE ['io']));' Je veux donc envoyer un socket à tout le monde depuis ce socket ($ _COOKIE ['io']). Des façons? Je vous remercie ! – DisplayName
Vous pouvez essayer celui-ci. 'io.to (message.data.senderID) .emit (channel +": "+ message.événement, message.data.message)' –
juste 'io.emit' fonctionne, mais il envoie à l'expéditeur. io.to ne fonctionne pas .. toutes les erreurs, mais pas l'envoi. Devrais-je passer à la version 1.x.x? J'ai besoin de quelque chose comme io.from (..) .à tout le monde sauf l'expéditeur. – DisplayName