我正在尝试创建一个多人游戏,为每个连接的两个套接字创建新的房间。我该怎么做呢?有人可以提供一个例子吗?
答案 0 :(得分:1)
作为起点,您可以使用以下示例
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)
这个例子的问题在于,如果一个房间的一个玩家离开游戏,另一个玩家将保持独立直到他或她刷新页面。根据应用程序的不同,您可能需要在此处添加一些逻辑。