【发布时间】:2018-01-14 05:53:58
【问题描述】:
我正在寻找使用 nodejs、socket.io、Redis 向特定客户端发送消息的方法。(这也意味着跟踪该用户)
请帮忙
编辑
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var redis = require('redis');
var user=[];
server.listen(3000);
io.on('connection', function (socket) {
var redisClient = redis.createClient();
redisClient.subscribe('message');
user[socket.handshake.query.userid] = socket;
socket.on('create', function(id) {
user[id] = socket;
});
redisClient.on("message", function(channel, message) {
var message=JSON.parse(message);
var id=JSON.parse(message.id);
var target=id;
console.log("target id => "+user[target].id+" / socket.id => "+socket.id)
try{
if(user[target].id==socket.id){
user[target].emit(channel,message.msg);
}else{
console.log('when socket.id dont match')
}
}catch (e){
console.log(e);
}
console.log("\n#########################\n");
});
});
【问题讨论】: