如何使用websocket-bench压测用户先登录,后发送其他信息的场景
问题
在使用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论