【发布时间】:2017-06-20 01:23:33
【问题描述】:
所以我正在用 NodeJS 编写一个应用程序,作为我的问题的前言,请了解我的设置当前是如何工作的:
我有客户端通过 Socket.io 连接到“服务器 X”,然后我的“服务器 X”通过 Socket.io 连接到“服务器 Y”,它们都通过 Socket.io 将数据发送回对方。
客户端 服务器 X 服务器 Y
客户端指的是用户及其浏览器,然后我的服务器 x 和服务器 y 上都运行了一个节点应用程序。
因此,在我的服务器 X 上的以下代码中,如果您查看第 4 行,它的工作原理与它应该完全一样。它只将消息发送给请求它的客户。
io.on('connection', function(socket){
// This works just fine.
socket.emit('return_login', 'Test Message');
socket.on('login', function(data){
// This line correctly sends the data to Server Y
server_y.emit('login', data);
});
server_y.on('return_login', function(data){
// This emits to all connected clients???
socket.emit('return_login', data);
});
});
现在我的问题是当“服务器 Y”向服务器 x 发出 return_login 时,我希望服务器 x 获取服务器 y 发出的值并将其发送回原始客户端或 Web 浏览器.但由于某种原因,该行会发送到所有连接的客户端。
我有一台笔记本电脑,这台电脑和我的手机都在测试这个,每次发射都会发送给每个人。
如果有人可以帮我解决这个问题,我将不胜感激。如果我需要发布更多代码,请告诉我。
【问题讨论】:
标签: node.js sockets express callback socket.io