如何将数据发送到特定套接字?

时间:2017-06-09 19:01:59

标签: javascript node.js websocket

我的问题是我目前使用库发送特定套接字的解决方案" ws"使用node.js还不够好。

原因是因为如果我使用在客户端定义的相同用户标识将多个标签连接到websocket服务器,它将仅引用与指定用户标识的最新连接。

这是我的代码:

// Server libraries and configuration   
var server = require("ws").Server;
var s = new server({ port: 5001});

// An array which I keep all websockets clients
var search = {};

s.on("connection", function(ws, req) {
  ws.on("message", function(message){
    // Here the server process the user information given from the client
    message = JSON.parse(message);
    if(message.type == "userinfo"){
      ws.personName = message.data;
      ws.id = message.id;
      // Defining variable pointing to the unique socket
      search[ws.id] = ws;
      return;
    }
  })
})

如您所见,每次具有相同ID的套接字连接时,它将引用最新的套接字。

示例如果你不明白:

  1. 客户端连接到ID为1337的服务器
  2. search [1337]定义为 - > websocket 1
  3. 具有相同ID的新连接:1337
  4. search [1337]变成了一个变量,引用了websocket 2而不是

1 个答案:

答案 0 :(得分:0)

Websockets提供了一种创建低延迟网络的方法" socket"浏览器和服务器之间。

请注意,此处的客户端是浏览器,而不是浏览器上的标签。

如果您需要在浏览器和服务器之间管理多个用户会话,则需要编写代码来自行完成。