V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dielianxiang
V2EX  ›  Node.js

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

  •  
  •   dielianxiang · 2017-09-09 16:54:21 +08:00 · 6547 次点击
    这是一个创建于 2628 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于公司业务需要,需要做一个实时的消息转发系统。之前用过基于 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......

    10 条回复    2017-09-25 22:47:04 +08:00
    notreami
        1
    notreami  
       2017-09-09 17:51:27 +08:00
    开源是好事。问题是,这个应该属于公司项目,不知道贵司是否同意且知晓该项目开源了?
    dielianxiang
        2
    dielianxiang  
    OP
       2017-09-09 19:36:28 +08:00
    @notreami 这是我写的 Demo。里面的东西没有业务。
    schema
        3
    schema  
       2017-09-09 19:47:25 +08:00
    赞!👍
    caijihui11
        4
    caijihui11  
       2017-09-09 22:50:04 +08:00
    刚好也要运用这个技术去实现类似的功能,感谢分享。
    caijihui11
        5
    caijihui11  
       2017-09-09 22:56:05 +08:00
    nodejs 有 使用 rabbitmq 的项目实战的,带些简单的业务(哪怕是注册登录都好)吗
    dielianxiang
        6
    dielianxiang  
    OP
       2017-09-10 10:23:29 +08:00
    @caijihui11 这个确实可以结合一下。有时间我来写个 Demo.也可以一起讨论哈。
    hahaDashen
        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

    dielianxiang
        8
    dielianxiang  
    OP
       2017-09-10 14:30:22 +08:00
    @hahaDashen 已修复。谢谢。
    fcten
        9
    fcten  
       2017-09-11 10:37:54 +08:00
    分布式……体现在哪里?
    既然号称高性能,就算没有压测数据,至少也要说明支持多少并发多少 tps 吧……
    caijihui11
        10
    caijihui11  
       2017-09-25 22:47:04 +08:00
    伙计,联系邮箱多少,有些 nodejs 方面的问题咨询
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3874 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.