1
我使用Redis的与socket.io '广播' 属性:Socket.IO类型错误:无法读取的不确定
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);
});
我收到此:
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 ...
有什么不对? console.log(message.data.senderID);
打印插口确定。谢谢..
我使用的是2.0.3(貌似最新)。我从laravel发送套接字,而不是js。 '\事件::火(新NewTopicCreated($ _COOKIE [ 'IO']));'所以我想送插座为大家从此套接字($ _COOKIE [ 'IO'])。无论如何?谢谢 ! – DisplayName
你可以试试这个。 (message.data.senderID).emit(channel +“:”+ message.event,message.data.message)' –
只是'io.emit'起作用,但它发送给发送者。 io.to不工作..任何错误,但不发送。我应该移动到1.x.x版本吗?我需要像io.from(..)之类的东西给除发件人之外的所有人。 – DisplayName