在单个应用程序中打开多个 websocket 连接

Posted

技术标签:

【中文标题】在单个应用程序中打开多个 websocket 连接【英文标题】:Opening multiple websocket connections in single app 【发布时间】:2016-11-29 11:19:47 【问题描述】:

我需要对我们的 websocket 服务进行负载测试。 有没有办法从单个工作站打开多个 websocket 连接?

我已经尝试使用 npm wswebsocketmodules 来使用 NodeJS 启动它们。它适用于单个连接,但是当我尝试在 for 循环中打开它们时,它会引发异常或仅使用最后一个打开的客户端。

【问题讨论】:

【参考方案1】:

如果您想从单个工作站执行此操作,您可以使用子进程:

app.js:

var cp = require('child_process');
var children = [];
var max = 10; // tweak this to whatever you want
for(var i = 0; i<max; i++)
    children[i] = cp.fork('./child.js');
    .on('error', function(e) 
        console.log(e);
    ).on('message',function(m)
        console.log(m)
    ).on('exit', function(code) 
      console.log('exit with code',code);
    );

然后在 child.js 中,只需要一个启动连接的脚本。您还可以使用子进程 API 在父子进程之间发送消息

【讨论】:

谢谢!这对我有帮助。 npm websocket 也终于成功了!

以上是关于在单个应用程序中打开多个 websocket 连接的主要内容,如果未能解决你的问题,请参考以下文章

Websockets 在客户端发送多个事件和多个事件处理程序

多个独立的 websockets 连接

websocket每秒创建新连接

Angular 1.5:多个 WebSocket 连接

多个 HTML5 WebSocket 连接

使用 React 管理多个 websocket