由于公司业务需要,需要做一个实时的消息转发系统。之前用过基于 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......
1
notreami 2017-09-09 17:51:27 +08:00
开源是好事。问题是,这个应该属于公司项目,不知道贵司是否同意且知晓该项目开源了?
|
2
dielianxiang OP @notreami 这是我写的 Demo。里面的东西没有业务。
|
3
schema 2017-09-09 19:47:25 +08:00
赞!👍
|
4
caijihui11 2017-09-09 22:50:04 +08:00
刚好也要运用这个技术去实现类似的功能,感谢分享。
|
5
caijihui11 2017-09-09 22:56:05 +08:00
nodejs 有 使用 rabbitmq 的项目实战的,带些简单的业务(哪怕是注册登录都好)吗
|
6
dielianxiang OP @caijihui11 这个确实可以结合一下。有时间我来写个 Demo.也可以一起讨论哈。
|
7
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
|
8
dielianxiang OP @hahaDashen 已修复。谢谢。
|
9
fcten 2017-09-11 10:37:54 +08:00
分布式……体现在哪里?
既然号称高性能,就算没有压测数据,至少也要说明支持多少并发多少 tps 吧…… |
10
caijihui11 2017-09-25 22:47:04 +08:00
伙计,联系邮箱多少,有些 nodejs 方面的问题咨询
|