消息特定socket.io客戶在我的Express服務器,我使用socket.io和Redis的發佈訂閱。 服務器預訂一個Redis的消息信道,並當有人通過Redis的新發布消息轉發Redis的消息發送到特定的WebSocket客戶端。前進的Redis PubSub的快遞
從我從socket.io和Redis文檔中讀到的內容,我可以使用變量socket
和致電socket.broadcast.to(mySocketID).emit
向特定客戶端發送消息。
但是,在下面的代碼中,如果我想要發送消息給mySocketID
內部的redis用戶,該用戶不在io.on('connection')
的範圍內,該怎麼辦?
var redis = require('redis');
var server = require('http').createServer(app);
var io = require("socket.io")(server);
io.on('connection', function (socket) {
socket.on('whatever_event', function() {
socket.broadcast.to(mySocketID).emit('TEST', 'hello ' + mySocketID);
}
}
var subscriber = redis.createClient();
subscriber.on('message', function (channel, redisMessage) {
// I want to send redisMessage to the websocket client
// Can I access to "socket" in io.on('connection' ...) ?
});