javascript - 使用 Socket.io 发送和接收数据

标签 javascript node.js express socket.io

我有两个客户端,客户端 1 将数据发送到我们的 Node.js & Express 后端,后端发出一个只有客户端 2 可以接收的事件。之后,客户端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 也没有收到该信息。

我在这里做错了什么?

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

最佳答案

你需要将所有的socket.id存储在数组中,然后每次发送消息时都可以通过接收者名称获取该socket.id。

Here you can find what you need

关于javascript - 使用 Socket.io 发送和接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55814836/

相关文章:

javascript - 如何在 Co-Request 模块和 NodeJs 中对文件进行管道响应?

javascript - ReactJS 的实时 API 监听器

javascript - Node.js EJS 快速验证器

javascript - React hooks onClick 仅针对父级(模式)触发

javascript - 提交时的搜索栏

Javascript 和 CSS 解析性能

javascript - 将 webpack 与 babel 和 babel-preset-react 以及 babel-preset-es2015 一起使用

node.js - 用于时间跟踪的 MongoDB 架构设计

javascript - 请求正文与提交的数据不同

node.js - 无法让 Handlebars 部分与 Express 配合使用