所以我有一个我用socketio创建的在线游戏,目前正在侦听端口3000并且只做那里的所有事情。现在怎么样?
我想这样做,以便有人可以创建一个“房间”,然后人们用代码加入房间,我想有多个端口是不同的房间,所以可以在端口2020上运行游戏和另一个3000。
所以我的问题是,如何将当前设置转换为此房间系统。我假设我需要一个可以创建房间的中央app.js?或者是以另一种方式完成。
此外我对这些想法持开放态度,这对我来说是新的,所以我不知道做房间系统的传统方式,也许完全有另一种方式?我的游戏虽然使用了socket.io。
答案 0 :(得分:1)
socket.io已添加了空间/名称间距功能。
您可以在Rooms and Namespaces中找到该文档。
io.on('connection', socket => {
socket.join('some room')
io.to('some room').emit('some event')
})
..会向'some-event'
名为join()
的房间的所有套接字发出'some-room'
。
当您开始实施上述内容时,emit()
cheatsheet将非常有用 。
绝对没有必要开始为每个房间吃掉一个端口,也不需要创建自己的房间连接逻辑。