私はsocket.ioでノードを稼働させています。サーバーでオンラインになっている人 (ソケット接続が開いている人) にメッセージを送信できます。しかし、少なくとも1人がオフラインで複数の人に送信しようとすると、送信されません。すべてがオンラインの場合は通過します。
これを修正する方法について何か助けはありますか?
client.on('message_from_client',function(data){
for(var i=0;i<data.length;i++){
if(data[i].message_to!=''){
client.emit("update_message_from_server", data[i]);
if(data[i].message_to != client.username){
var message_to = data[i].message_to;
var array =data[i];
redisClient.SISMEMBER('online',message_to,function(err,reply){
if(reply!=0){
redisClient.get(message_to,function(err,reply2){
if(reply2!=null){
io.sockets.sockets[reply2].emit("update_message_from_server",array );
}
});
}else{
console.log("Offline");
}
});
}
}else{
client.emit("update_message_from_server", data[i]);
}
}
});
data は JSON オブジェクトです。オフラインとして data[i].message_to がある場合、これはクライアントにのみ送信できますが、他のソケットには送信できません。すべてのエントリをオンラインにすると、クライアントと他のソケットの両方に送信できます