【问题标题】:How many WebSocket connection can be created on Client Side客户端可以创建多少个 WebSocket 连接
【发布时间】:2015-11-30 11:52:35
【问题描述】:

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

我的典型应用程序是基于 html UI 的,并且在服务器上我有基于休息的服务。我需要跟踪是否

  1. 会话超时是否已经发生
  2. 与服务器的连接是否丢失?一种用于检查连接的池程序是否存在。

所以我在客户端上创建了 2 个 websocket 对象,并为它们创建了不同的 url。

我希望我已经正确实施了它?

【问题讨论】:

    标签: websocket java-websocket


    【解决方案1】:

    基本上,一旦您打开到 SAME URL(ws://127.0.0.1:8080/WebSocket-context-root/getResource) 的新连接,浏览器就会关闭旧的 websocket 连接。您可以保留像“ws://127.0.0.1:8080/WebSocket-context-root/getResource/”+k 这样的小技巧。其中 k 是任意数字/任意随机字符串。在服务器端,只需忽略路径变量 k。

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

    您可以使用 websocket.readyState 来检查网络套接字连接的状态。

    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(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'); } if (++x === 15) { window.clearInterval(intervalID ); } }, 1);
    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 2012-03-31
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2021-06-19
    相关资源
    最近更新 更多