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

Socket.io 如何进行压力测试呢?

  •  1
     
  •   sxyclint · 2014-08-04 21:13:37 +08:00 via iPhone · 12856 次点击
    这是一个创建于 3788 天前的主题,其中的信息可能已经有所发展或是发生改变。
    逻辑很简单,服务端对不同的房间实时推送不同的信息,连接都强制设置成仅用WebSocket通信,用Nginx做反向代理,客户端只接收信息,少数情况下会向服务端发请求更换房间。
    现在的问题是,由于第一次做这种应用,该怎么做压力测试呢?主要是对Socket.io进行压力测试么?
    我试了websocket benchmark ,但是我在测试的是时候,返回的全是error,我用的是express+socket.io融合模式,共用一个端口。
    大家有没有什么思路能提供呢?发CNode上没人回答,先谢谢了。。
    9 条回复    2014-09-19 18:39:36 +08:00
    kimmykuang
        1
    kimmykuang  
       2014-08-04 21:21:24 +08:00
    请教个问题,利用socket.io做即时通讯app是可行到吗?
    CDuXZMAPgHp1q9ew
        2
    CDuXZMAPgHp1q9ew  
       2014-08-04 21:26:02 +08:00
    关注中。。。
    sxyclint
        3
    sxyclint  
    OP
       2014-08-04 21:34:00 +08:00 via iPhone
    @kimmykuang 实现问题不大,socket.io也包含了多种连接方式,走服务端的话,也要考虑负载能力吧。
    barbery
        4
    barbery  
       2014-08-04 21:49:21 +08:00
    我也遇到这个问题鸟。。。websocket接口 不知道怎么做压力测试
    akfish
        5
    akfish  
       2014-08-04 22:13:27 +08:00   ❤️ 1
    跑黑客站去发帖嘲讽说:哥做了个站100%抗DDOS攻击,你们一群二逼不信来试试啊。
    然后lz就打开logger收数据。

    以上玩笑,google: socket.io stress test,大量文章,比如:
    http://bocoup.com/weblog/node-stress-test-analysis/
    nevernet
        6
    nevernet  
       2014-08-05 08:47:10 +08:00
    楼上正解
    ryd994
        7
    ryd994  
       2014-08-05 18:34:49 +08:00
    万一人家直接CC怎么办2333333333333333333
    luckyan315
        8
    luckyan315  
       2014-08-25 09:38:50 +08:00   ❤️ 1
    用nginx也只能 websocket , polling 的话会有连接自动断开的问题, 之前写的一个, 可以供你参考, https://github.com/luckyan315/sio_benchmark , 具体用法看 unit test 吧
    TangMonk
        9
    TangMonk  
       2014-09-19 18:39:36 +08:00
    @luckyan315 用 nginx 的话, polling会自动断开? 能详细解释下吗? 谢谢.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4011 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:16 · PVG 18:16 · LAX 02:16 · JFK 05:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.