gpt4 book ai didi

javascript - 无法使用本地主机上的 node.js 向不在线的人发送消息

转载 作者:行者123 更新时间:2023-11-30 05:45:48 26 4
gpt4 key购买 nike

我已经启动并运行了 socket.io Node 。我能够向在我的服务器上在线的人(他们的套接字连接打开)发送消息。但是当我尝试将它发送给至少一个离线的多人时,它不会通过。如果所有人都在线,它就会通过。

关于如何解决这个问题的任何帮助?

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]);
}
}
});

数据是一个 JSON 对象。如果我有任何离线数据[i].message_to,我只能将其发送给客户端,而不能发送给其他套接字。如果我有所有在线条目,我可以将它发送到客户端和其他套接字

最佳答案

我想到了其他方法来做到这一点

client.on('message_from_client',function(data){
alldata = data.data;
console.log(alldata);
alldata = JSON.parse(alldata);
alldata.forEach(function(data){
if(data.message_to!=''){
client.emit("update_message_from_server", data);
if(data.message_to != client.username){
redisClient.SISMEMBER('online',data.message_to,function(err,reply){
if(reply!=0){
redisClient.get(data.message_to,function(err,reply2){
if(reply2!=null){
io.sockets.sockets[reply2].emit("update_message_from_server",data );
}
});
}else{
console.log("Offline");
}
});
}
}else{
client.emit("update_message_from_server", data);
}
});
});

关于javascript - 无法使用本地主机上的 node.js 向不在线的人发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com