1

Web ソケットの学習を開始しました。今日の時代に技術を学ばなければなりません。しかし、私はそれについてもっと知りたいと思っています。私の基本的な質問は、クライアント側で作成できる WebSocket 接続の数です。

私の通常のアプリケーションはhtml UIベースで、サーバー上にはレストベースのサービスがあります。かどうかを追跡する必要があります

  1. セッションタイムアウトが発生したかどうか
  2. サーバーへの接続が失われているかどうか 接続をチェックする一種のプーリングプログラムが生きているかどうか。

そのため、クライアントに 2 つの websocket オブジェクトとそれらの異なる URL を作成しています。

私はそれを正しく実装したことを願っていますか?

4

1 に答える 1

2

基本的に、ブラウザーは、同じ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 Web ソケットのイベントには、接続が閉じられた理由コードがあります。

以下のコードを使用して、アクティブな接続の数をテストします。

     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);
于 2015-09-17T05:52:26.237 に答える