如何在socket.io上侦听不同的端口

时间:2017-11-21 05:01:58

标签: javascript node.js socket.io

所以我有一个我用socketio创建的在线游戏,目前正在侦听端口3000并且只做那里的所有事情。现在怎么样?

我想这样做,以便有人可以创建一个“房间”,然后人们用代码加入房间,我想有多个端口是不同的房间,所以可以在端口2020上运行游戏和另一个3000。

所以我的问题是,如何将当前设置转换为此房间系统。我假设我需要一个可以创建房间的中央app.js?或者是以另一种方式完成。

此外我对这些想法持开放态度,这对我来说是新的,所以我不知道做房间系统的传统方式,也许完全有另一种方式?我的游戏虽然使用了socket.io。

1 个答案:

答案 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将非常有用

绝对没有必要开始为每个房间吃掉一个端口,也不需要创建自己的房间连接逻辑。