Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Socket.io-插座拆分为多个房间_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript Socket.io-插座拆分为多个房间

Javascript Socket.io-插座拆分为多个房间,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我正在尝试创建一个多人游戏,为每两个连接的插座创建新的房间。我该怎么做呢?有人能举个例子吗?作为起点,你可以使用下面的例子 const io = require('socket.io')() /* room to join next connected socket */ let prevRoom = null io.on('connection', socket => { let room if (prevRoom == null) { /* create new

我正在尝试创建一个多人游戏,为每两个连接的插座创建新的房间。我该怎么做呢?有人能举个例子吗?

作为起点,你可以使用下面的例子

const io = require('socket.io')()

/* room to join next connected socket */
let prevRoom = null

io.on('connection', socket => {
  let room

  if (prevRoom == null) {
    /* create new room if there is no room with one player */
    room = Math.random().toString(36).slice(2)
    prevRoom = room
  } else {
    /* join existing room with one player and mark that it is now complete */
    room = prevRoom
    prevRoom = null
  }

  socket.join(room)

  /* send message from one socket in this room to another */
  socket.on('message', data => {
    socket.broadcast.to(room).emit('message', data)
  })
})

io.listen(3000)
这个例子的问题是,如果一个玩家从一个房间离开游戏,另一个玩家将独自呆着,直到他或她刷新页面。根据应用程序的不同,您可能需要在此处添加一些逻辑。

可能重复的