通过node.js和socket.io在两个用户之间发送消息

时间:2012-08-31 10:41:28

标签: javascript node.js socket.io

我是node.js和socket.io

的新手

我有两个客户,他们有ID 1& 2。 我需要通过socket.io发送包含以下内容的数据: user_from,user_to,action

数据从双方发送。

如何使用socket.emit()从客户端1发送此数据,以便设置变量:data?

如何使用socket.get读取服务器上的数据?

再次从服务器发送到客户端2? (我发现这段代码:io.sockets.volatile.emit('broadcast_msg',msg);但我想只将它从特定用户发送给特定用户,而不是所有连接的用户。)

感谢您的帮助,我看到很多例子,但不是我需要的。

更新:

我不明白这段代码:

// on server started we can load our client.html page
function handler(req, res) {
  fs.readFile(__dirname + '/client.html', function(err, data) {
    if(err) {
      console.log(err);
      res.writeHead(500);
      return res.end('Error loading client.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}

为什么我需要这样做?我有ex:index.php?menu = 30或index.php?menu = 30& action = 12

1 个答案:

答案 0 :(得分:1)

您正在寻找路由功能。 socket.io提供的是点对点通信。例如从1个客户端到服务器。

逻辑上,您需要服务器来路由消息,这意味着消息应该具有寻址信息(例如,目标接收者的ID)。然后,可以使用此方法来路由消息,例如,根据传入消息的目标用户创建(自定义)要触发的用户特定事件。

如果你正在构建任何需要扩展的东西,也许你应该看看像RabbitMQ这样的消息传递框架。它的确意味着在分布式实体(如用户)之间路由消息。

干杯!