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