node做多聊天室,添加聊天室这个功能怎么实现?
发布于 7 年前 作者 FirstYy 6245 次浏览 来自 问答

请各位大大帮我整理一下思路,实在是不知道怎么做了。

29 回复

自顶一下!

别沉啊!!!

node…node…node.js

roomId:{userid:user} 怎么样,添加就是新增roomId,进入这个频道或者叫房间玩家放到这个集合中

@nobody 我在网上看到刘哇勇的聊天室开发过程,大致了解一个聊天室是怎么产生的,可是怎么产生多个聊天室呢?我是node新手,多个聊天室应该要用到数据库吧?然后还有其它细节如果你有时间,请给我讲解一下。

@nobody 谢谢回复。

你的提问太简略,没法回答。起码得说下单个的聊天室怎么实现的

@gfafei 单个的话http://www.cnblogs.com/Wayou/p/hichat_built_with_nodejs_socket.html,这个很详细,我不知道怎么样才能将不同聊天室里的聊天信息隔离出来。

每个聊天室就是一个房间,有个roomID 房间里一群用户,聊天信息按照roomID分离不就好了,不用数据库的话就存到内存中 例如这样:两个房间1001 1002 {1001:[{user1:‘hello world’}.{user2:“hahaha”}], 1002:[{user1:‘hello world’}.{user2:“hahaha”}]}

可以参考下这个 也可以照@leiwei1991说的做

@leiwei1991 谢谢回复,那1001的实时聊天信息出现在1002怎么办?这个问题困扰了我很久

@gfafei 谢谢支持,会持续关注。

@FirstYy 不会出现这种问题吧,进入房间时,给每个玩家记一个房间号,user1:1001,把这个玩家说的话存在房间1001里

@leiwei1991 不同的房间所有说过的话可以用房间的房间号进行查找,但是即时信息怎么区分开?

@leiwei1991 请问一下这个即时聊天的话用mongodb还是mysql方便一些,我用mysql会出现一些不明所以的问题,如果方便,请指导一下

@pengliheng 谢谢了!正在关注。

@pengliheng 你好,再次打扰了,我还是不很明白多个聊天室中每个聊天室是什么样的一个模型,或者说是怎么创建出来的,另外假如我想给聊天室限制用户的访问权限,这个思路应该怎么做

@pengliheng 对你说到点子上了,循环出这几个roomid的话是以什么样的形式显示在前端呢?大致就是这个房间是由什么元素组成的? 谢谢回答!

@pengliheng 我咨询其他人时他们说了一个很重要的概念就是socket.io下的namespace

@pengliheng 恩 如果有合适的实现方法,请分享一下给我,也是分享给大家

推荐网易的pomelo

来自酷炫的 CNodeMD

@zhangmingfeng 非常感谢,持续关注中。

看下pomelo的频道那里

加一个聊天室id字段,再单独建一张聊天室id-聊天室名字的表

房间的队列里增加一条,之后加入的人订阅这个房间的消息。

@wangchaoduo 是的确实是这样做的

@stonephp 意思是增加路由管理?一个房间的id就是一条对应的路由,这样就解决我的问题,非常感谢你的回答

@beiyio 感谢答复!

@zhangmingfeng 这个是做游戏的吧?谢谢你的提示!

回到顶部