Как установить подпротокол WebSocket в js - PullRequest
0 голосов
/ 25 марта 2020

Создаю клиентскую веб-розетку с javascript и потерял, куда поместить этот ключ * index. html: 14 Uncaught DOMException: Не удалось создать 'WebSocket': подпротокол 'dGhlIHNhbXBsZSBub25jZQ ==' недействителен. на WebSocketTest (файл: /// C: /handshake/index.html: 14: 16) в: 1: 1

<script type = "text/javascript">
         function WebSocketTest() {
            
            if ("WebSocket" in window) {
               alert("WebSocket is supported by your Browser!");
               
               // Let us open a web socket
               //var ws = new WebSocket("ws://192.168.1.104:9001");
			   var ws = new WebSocket("wss://192.168.1.104:9001", "dGhlIHNhbXBsZSBub25jZQ==");
                ws.onopen = function() {
                  //test open connectin
				  alert("Connection Established...");
                  // Web Socket is connected, send data using send()
                  ws.send("Message to send");
                  alert("Message is sent...");
               };
				
               ws.onmessage = function (evt) { 
                  var received_msg = evt.data;
                  alert("Message is received...");
               };
				
               ws.onclose = function() { 
                  
                  // websocket is closed.
                  alert("Connection is closed..."); 
               };
            } else {
              
               // The browser doesn't support WebSocket
               alert("WebSocket NOT supported by your Browser!");
            }
         }
      </script>
  <body>
      <div id = "sse">
         <a href = "javascript:WebSocketTest()">Run WebSocket</a>
		 <p> Tested </p>
      </div>
      
   </body>
   </body>

1 Ответ

0 голосов
/ 26 марта 2020

Странно, что заголовок этого вопроса говорит об установке подпротокола WebSocket, но текст вопроса и выдержка из кода касаются ключа безопасности WebSocket. Это две совершенно разные вещи.

JavaScript Объект WebSocket не предоставляет доступа к заголовку Sec-WebSocket-Key. Этот заголовок создается внутри реализации WebSocket браузера. Начиная с JavaScript вы не можете установить этот ключ и не можете прочитать этот ключ.

Второй аргумент конструктора WebSocket позволяет указать содержимое (одно или несколько имен подпротоколов) для заголовка Sec-WebSocket-Protocol не для Sec-WebSocket-Key. Вот почему в сообщении об ошибке указывается недопустимое имя подпротокола при передаче "dGhlIHNhbXBsZSBub25jZQ==" в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...