【问题标题】:Sending and Receiving data with Socket.io使用 Socket.io 发送和接收数据
【发布时间】:2019-09-12 20:27:51
【问题描述】:

我有两个客户端,客户端 1 向我们的 Node.js & Express 后端发送数据,后端发出一个只有客户端 2 可以接收的事件。之后,Client 2 接收到数据并显示出来。

下面是客户端 1 的代码:

var socket = io();
  socket.emit("match_package", {user_uid, match_uid, room_id, user_data});

Node.js Express 服务器:

var tech = io.of("/");
tech.on("connection", (socket) => {
  socket.on("match_package", (data) => {
    var match_uid = data.match_uid;
    var room_id = data.room_id;
    socket.emit(match_uid, room_id);
    socket.emit("1", "hello");
  }
}

客户端 2:

var socket = io();
socket.on('connect', () => {
  socket.on(user_uid, (data) => {
    console.log(data);
  })
  socket.emit("1", (data) => {
    console.log(data);
  })
})

来自后端的 match_uid 与客户端 2 中的 user_uid 相同(已验证)。这就是该事件仅对客户端 2 可见的方式。但不知何故,在客户端 2 上,console.log 没有显示任何数据。我可以保证在后端可以正常接收数据。但不知何故,客户端 2 没有收到它。

我什至从后端发出了一个虚拟事件“1”。客户端 2 也没有收到。

我在这里做错了什么?

非常感谢您的帮助和时间。

【问题讨论】:

    标签: javascript node.js express socket.io


    【解决方案1】:

    您需要将所有socket.ids存储在数组中,然后您可以在发送消息时获取带有接收者名称的socket.id。

    Here you can find what you need

    【讨论】:

    • 您好,感谢您的链接,您知道为什么我的代码不起作用吗?
    猜你喜欢
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 2012-06-11
    • 2023-03-03
    • 2011-08-06
    • 2020-02-09
    • 1970-01-01
    相关资源
    最近更新 更多