基于 node.js 的一个分布式实时消息转发系统

2017-09-09 16:54:21 +08:00
 dielianxiang

由于公司业务需要,需要做一个实时的消息转发系统。之前用过基于 php 的 workman.一个开源高性能的 PHP socket 服务器框架。但是我们公司有大量业务基于 Restful Api.技术选型使用 node.js 。框架使用 express4。网上没找到合适的脚手架。就自己写了一个基于 Node.js 、redis、Sockit.io 写了一个高性能实时转发的系统。

Github 地址: https://github.com/gytai/node-msg-sender

消息实时推送,支持在线用户数实时统计。基于 Socket.IO 开发,使用 websocket 推送数据,当浏览器不支持 websocket 时自动切换 comet 推送数据。

支持 Linux,mac,windows 等环境部署。

线上 demo

http://112.74.81.224:3000/

可以通过 url: http://112.74.81.224:3000/sendMsg/?type=private&uid=1504936989000&content=消息内容 向当前用户发送消息

可以通过 url: http://112.74.81.224:3000/sendMsg/?type=public&content=消息内容 向所有在线用户推送消息

uid 为接收消息的 uid,如果不传递则向所有人推送消息 content 为消息内容

注:可以通过 php 或者其它语言的 curl 功能实现后台推送

下载安装

1、git clone https://github.com/gytai/node-msg-sender.git

2、npm install

3、apt-get install redis-server

4、redis-server

后端服务启动停止,先安装 PM2(Advanced Node.js process manager,http://pm2.keymetrics.io/)

启动服务

pm2 start bin/www – name msg-sender

停止服务

pm2 stop msg-sender

求 star......

6417 次点击
所在节点    Node.js
10 条回复
notreami
2017-09-09 17:51:27 +08:00
开源是好事。问题是,这个应该属于公司项目,不知道贵司是否同意且知晓该项目开源了?
dielianxiang
2017-09-09 19:36:28 +08:00
@notreami 这是我写的 Demo。里面的东西没有业务。
schema
2017-09-09 19:47:25 +08:00
赞!👍
caijihui11
2017-09-09 22:50:04 +08:00
刚好也要运用这个技术去实现类似的功能,感谢分享。
caijihui11
2017-09-09 22:56:05 +08:00
nodejs 有 使用 rabbitmq 的项目实战的,带些简单的业务(哪怕是注册登录都好)吗
dielianxiang
2017-09-10 10:23:29 +08:00
@caijihui11 这个确实可以结合一下。有时间我来写个 Demo.也可以一起讨论哈。
hahaDashen
2017-09-10 10:54:48 +08:00
http://112.74.81.224:3000/sendMsg/?type=public&content=%3Cscript%3Ewindow.location=%22https://www.baidu.com%22;%3C/script%3E

dielianxiang
2017-09-10 14:30:22 +08:00
@hahaDashen 已修复。谢谢。
fcten
2017-09-11 10:37:54 +08:00
分布式……体现在哪里?
既然号称高性能,就算没有压测数据,至少也要说明支持多少并发多少 tps 吧……
caijihui11
2017-09-25 22:47:04 +08:00
伙计,联系邮箱多少,有些 nodejs 方面的问题咨询

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/389424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX