首页 > 解决方案 > socket.io房间名称如何从前端传递到后端?

问题描述

我目前正在制作一个在前端使用 React.js 并在后端使用 Node.js 的应用程序。在开发过程中,我发现我需要使用套接字来将实时变化反映给特定房间中的所有用户。为此,我在我的 Node.js 后端使用此代码:

io.emit("name", {
           action: "action",
           data: data
       });

然后在我的前端接收请求,我这样做:

import openSocket from "socket.io-client";
const socket = openSocket(url);
socket.on("name", (data) => {
      ... logic
});

虽然此代码有效,但我目前正在向连接到我的套接字的所有玩家发送信息。但是,我只想向某个房间的玩家发送信息。我不明白的部分是如何告诉 socket.io 哪些用户在某个房间里。我阅读了文档并且房间的概念似乎只是服务器端的东西,并且可以使用以下代码将播放器添加到房间:

io.on('connection', socket => {
  socket.join('some room');
});

但是我希望这个特定连接加入的房间名称存储在我的前端。有没有办法可以将这些数据从前端传递到后端,以便在建立“连接”时使用它?如果没有,我如何获得我需要的 roomID?谢谢!

标签: javascriptreactjssocketssocket.io

解决方案


推荐阅读