我无法理解为什么我的代码(下面)不起作用。在发送到套接字之前,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);

答案 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