You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter如何并发建立并保持多个带不同参数的WebSocket连接

批量建立并保持多个WebSocket连接的实现方案

下面是用JavaScript实现批量创建并维持多个WebSocket连接的具体方案,直接就能落地:

核心实现代码

// 批量创建WebSocket连接的函数
function createMultipleWsConnections(totalCount) {
  const connections = [];
  const heartbeatInterval = 30000; // 30秒发送一次心跳包

  for (let i = 0; i < totalCount; i++) {
    const connectionId = i + 1;
    const wsUrl = `ws://localhost:3000/connect-ws?id=${connectionId}`;
    
    // 创建对应id的WebSocket实例
    const ws = new WebSocket(wsUrl);

    // 连接成功后初始化心跳
    ws.onopen = () => {
      console.log(`连接 ${connectionId} 已建立`);
      const heartbeatTimer = setInterval(() => {
        if (ws.readyState === WebSocket.OPEN) {
          ws.send(JSON.stringify({ type: 'heartbeat' }));
        } else {
          clearInterval(heartbeatTimer);
        }
      }, heartbeatInterval);
    };

    // 处理服务器推送的消息
    ws.onmessage = (event) => {
      console.log(`连接 ${connectionId} 收到消息:`, event.data);
    };

    // 捕获连接错误
    ws.onerror = (error) => {
      console.error(`连接 ${connectionId} 发生错误:`, error);
    };

    // 断开后自动重连
    ws.onclose = () => {
      console.warn(`连接 ${connectionId} 已断开,2秒后尝试重连...`);
      setTimeout(() => {
        const newWs = new WebSocket(wsUrl);
        // 复用原有事件处理逻辑
        newWs.onopen = ws.onopen;
        newWs.onmessage = ws.onmessage;
        newWs.onerror = ws.onerror;
        newWs.onclose = ws.onclose;
        // 更新连接实例
        connections[i] = newWs;
      }, 2000);
    };

    connections.push(ws);
  }

  // 返回所有连接实例,方便后续统一管理
  return connections;
}

// 调用示例:创建10个WebSocket连接
const wsConnections = createMultipleWsConnections(10);

关键细节说明

  • 心跳维持:加入心跳包是为了避免服务器因长时间无交互主动断开连接,你可以根据自己的服务器超时配置调整心跳间隔。
  • 自动重连:连接因网络波动或服务器重启断开时,会自动尝试重新建立连接,保证连接的持续性。
  • 并发连接限制:注意大部分浏览器对同一域名的并发TCP连接数有默认限制(通常为6个),如果你的n值远大于这个数,可能会出现连接排队或失败的情况。可以通过以下方式解决:
    • 配置服务器使用多个子域名分流连接(如ws1.localhost、ws2.localhost)
    • 若业务允许,实现连接池机制复用空闲连接(但会改变每个连接带独立id的逻辑,需结合业务调整)

内容的提问来源于stack exchange,提问作者Rafael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:17:27