如何基于WebSocket和MongoDB技术实现NodeJS的推送服务器集群
nodejs吧
全部回复
仅看楼主
level 1
xppx2008 楼主
我要实现的是类似聊天QQ,微信这种应用程序。
我的初步解决方案,使用NodeJS开发一个推送服务器,它每秒中对MongoDB的推送数据进行轮询。
NodeJS的Rest服务的服务器收到用户A向用户B发送的消息后,将消息存入MongoDB的推送数据表,并记录时间存入时的时间。
推送服务器轮询MongoDB的推送数据表,取出上一次查询的时间到本次查询的时间之间的数据,并删除上一次查询时间以前的数据。
反正服务器也要做轮询处理客户端连接的心跳检测,顺便也用来做推送数据检测。
这种服务器可以开多个,使用forever进程守护,每个推送服务器被一定数量的websocket客户端连接。
这种解决方案有一些问题:
1.轮询的方式不能立即推送。
2.需要推送服务器和Rest服务服务器时间同步,否则会乱存,乱取,乱删。
请问有没有更好的解决方案?
2016年03月21日 12点03分 1
level 5
socket. io
2016年03月21日 14点03分 2
level 3
我也在学node js,我们公司一款app打算做即时通讯功能,我想用node来推送消息[哈哈]
2016年03月21日 17点03分 3
level 10
我的聊天室: http://fiora.suisuijiang.com/
既然用了websocket, 直接双向主动通讯就好了, 不需要轮询的.
2016年03月22日 07点03分 4
level 1
如果是测试玩的话. 直接socket.io 问题不大. 楼上已经有朋友做出来了. 而且我的项目也是socket.io做的(地址:cells.happyfor.me). 稳定性还不错. 支持几百人是没问题的 . .
如果是当作大项目来做的话. 建议使用第三方的云通信服务. 性能肯定比自己做的好. 可以试试 野狗和 Bmob 简单易用.
2016年03月28日 08点03分 5
1