我的私人消息不适用于socket.io

时间:2017-05-25 06:50:26

标签: javascript node.js sockets socket.io

我无法理解为什么我的代码(下面)不起作用。在发送到套接字之前,console.log在服务器端打印正确的socket.id。那么为什么收到这条消息呢?

服务器端:

socket.on("connectToUser", function(userName, currentUserName, userID){
        console.log("user wants to connect to: ",userID);
         socket.to(userID).emit("connectNotification", currentUserName);
    });

客户端:

socket.on("connectNotification", function(currentUserName){
        console.log("correct user notified");
        $("#connectToBox").append("Hallo");
    });

socket.id必须是原始的吗?我在连接上更改它,如下所示:



socket.on('connection', function(socket){
  console.log('a user connected', socket.id);
  var id = uuid.v4();
  socket.id = id;
  console.log(socket.id);




1 个答案:

答案 0 :(得分:1)

Random rand = new Random(); for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[i].length; j++) { if (grid[i][j] == 0) { grid[i][j] = rand.nextInt(); } } } 事件触发后更改socket.id可能为时已晚,因为此时connection已根据原始ID进行了一些内部管理。

如果您想使用自己的ID,则应使用middleware function代替(免责声明:我并不过分熟悉socket.io的内部,但有些例子我放在一起的代码似乎有效):

socket.io