我正在找到集成Client,Django和NodeJS的解决方案。我的任务是建立一个服务器,用户可以互相消息。我有2个解决方案:
答案 0 :(得分:2)
在使用两个服务器时,必须将socket_id与user_id相对应地存储在数据库Redis key value中。
您将需要:
第二个解决方案 :
用于发送消息的Django API逻辑必须在节点套接字服务器上实现。
例如用户身份验证,检查目标用户,存储消息,从数据库中找到用户socket_id等。
第一个解决方案 :
{event_name:“ send_message”,target_user_id:“ t_id”, send_user_id:“ u_id”,target_socket_id:“ t_sid”,消息:“ Hello target” }
在Node套接字服务器上,您可以订阅该事件并发出特定的socket_id
io.to(data.target_socket_id).emit("event", data);
{event_name:“ send_message”,target_user_id:“ t_id”, send_user_id:“ u_id”,target_socket_id:“ t_sid”,消息:“ Hello target” }
当节点服务器收到API请求时,您可以使用事件发射器来发射事件
process.emit(data.event_name,data)
您可以在套接字连接文件内部配置事件监听器
process.on("send_message",(data)=>{
io.to(data.target_socket_id).emit("event", data);
});