如何使用websocket-bench压测用户先登录,后发送其他信息的场景

发布于 2022-09-04 19:52:52 字数 719 浏览 13 评论 0

问题

在使用websocket-bench压测一个长连接服务,执行脚本g.js的内容是:

module.exports = {
 
  //建立连接后所要做的事情
  onConnect: function(client, done){
    //登录
    client.write({"action":"login","cid":1,"session":"123456"});
    done();
  },
  //向服务器民送消息时运行的代码
  sendMessage: function(client, done) {
    
    //说话
    client.write({"action":say","content":"hhhhhhhh"});
    done();
  }
};

执行压测

websocket-bench -a 10 -c 1 -w 8 -m 8 -t primus -p websockets ws://127.0.0.1 -g g.js -o result

结果发现,在长连接建立之后发送了登录信息之后,马上发送了说话的信息,而说话的功能是依赖用户登录态的,这个时候登录动作还没有处理完成,导致sendMessage发送的消息不能像预期一样处理,请问有没有解决的方法。(曾想过在onConnect中实现sleep,但是javascript这种单线程模式会导致整个压测工具执行变慢,得不到好的压测结果)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文