CNode

socket.io创建多个监听房间

Hhappywowwow发布于13 年前最后回复13 年前4 回复15033 浏览0 收藏

就是我想实现一个五子棋的服务器 其中就是分很多房间room1 room2 room3 …… 但是现在我就写了一个 var app = module.exports = express.createServer(); var io = require('socket.io').listen(app); room1=io.of('/room1').on('connection',function(socket){ socket.emit(………………); ……………… }); 我现在要是想写room2 room3……什么的是不是要复制上面这一段代码为 room2=io.of('/room2').on('connection',function(socket){ ……………… }); room3=……………… room4=………………

但是这样的话,服务器写几个room 客户端就只有这么多个房间可以选择连接 可是我想是,客户端自定义一个房间号码 比如23,发送到服务器,然后服务器创建一个room23
然后这个room23 实现上面如room1的功能和监听事件 不知道该怎么办

查看回复

回复 (4)

S
showen#1·13 年前

要是我实现你这东西的话绝对不按你这个思路,你这个思路说难听点真的是有点那个啥了。 为什么表面的“房间号“要真正的区分呢,服务端其实只需要一个”大的房间“,收集所有的连接实例,当几个人在一个房间里面的时候不必要去正在的像你那样建立一个房间,你可以把这个几个连接实例抽出来组成一个数组去实现小组内的广播等,只要你稍微自定义一下进入房间后发的消息格式就好了。

B
beiyio#3·13 年前

写一个房间的对象,对象包括 房间名称,房间人数,玩家的状态。

在写一个房间管理器。 管理器里指定了房间的个数。 房间的状态,寻找空闲房间等。 通过manager 来管理obj

Z
zhihuzeye#4·13 年前

of提供路由功能,房间的话用in

https://github.com/LearnBoost/socket.io/wiki/Rooms

参与回复
登录后即可参与回复。登录