在客户端可以创建多少个WebSocket连接

在客户端可以创建多少个WebSocket连接,websocket,java-websocket,Websocket,Java Websocket,我已经开始学习web套接字。在当今时代,它必须学习技术。 但我很想了解更多。我的基本问题是在客户端可以创建多少个WebSocket连接 我的典型应用程序是基于html UI的,在服务器上我有基于rest的服务。我需要追踪是否 会话超时是否已发生 与服务器的连接是否丢失?一种用于检查连接是否处于活动状态的池程序 所以我在客户端上创建了两个websocket对象,并为它们创建了不同的url 我希望我正确地执行了它 基本上,当您打开到相同URL的新连接时,浏览器会关闭旧的websocket连接(ws:

我已经开始学习web套接字。在当今时代,它必须学习技术。 但我很想了解更多。我的基本问题是在客户端可以创建多少个WebSocket连接

我的典型应用程序是基于html UI的,在服务器上我有基于rest的服务。我需要追踪是否

  • 会话超时是否已发生
  • 与服务器的连接是否丢失?一种用于检查连接是否处于活动状态的池程序
  • 所以我在客户端上创建了两个websocket对象,并为它们创建了不同的url


    我希望我正确地执行了它

    基本上,当您打开到相同URL的新连接时,浏览器会关闭旧的websocket连接(ws://127.0.0.1:8080/websocket context root/getResource)。您可以保留像“ws://127.0.0.1:8080/websocketcontextroot/getResource/”这样的小黑客代码+k。其中k是任意数字/任意随机字符串。在服务器端,只需忽略路径变量k

    这样,您可以同时打开多个连接。此处不适用每个域最大连接数的浏览器限制(在Firefox上测试)。我尝试了最多25个并行连接

         var x=0
         var intervalID = setInterval(function () {
         websocket = new WebSocket("ws://127.0.0.1:8080/WebSocketApi/web/chat/"+x);
    
          websocket.onopen = function (evt) {
    
          console.log('open')
          }
    
          websocket.onmessage = function (evt) {
                console.log('msg');
            }
          websocket.onclose= function (evt) {
                console.log('closed');
            }
          if (++x === 15) {
              window.clearInterval(intervalID);
          }
    
     }, 1);
    
    您可以使用websocket.readyState检查web套接字连接的状态

    Web套接字的onclose事件具有关闭连接的原因代码

    用户输入以下代码以测试活动连接数

         var x=0
         var intervalID = setInterval(function () {
         websocket = new WebSocket("ws://127.0.0.1:8080/WebSocketApi/web/chat/"+x);
    
          websocket.onopen = function (evt) {
    
          console.log('open')
          }
    
          websocket.onmessage = function (evt) {
                console.log('msg');
            }
          websocket.onclose= function (evt) {
                console.log('closed');
            }
          if (++x === 15) {
              window.clearInterval(intervalID);
          }
    
     }, 1);
    

    哦如果我清楚地了解您,则只有一个连接对象处于活动状态。我们需要在url中添加一些参数来分隔操作。对于一个url,只有一个连接对象处于活动状态。对于不同的url,可以有多个对象处于活动状态。var x=0 var intervalID=setInterval(函数(){websocket=newwebsocket(“ws://127.0.0.1:8080/WebSocketApi/web/chat”+x);websocket.onopen=function(evt){console.log('open')}websocket.onmessage=function(evt){console.log('msg');}如果(+x==15){window.clearInterval(intervalID);}},1);