Html 连接到'的WebSocket;ws://localhost:52312/';失败:WebSocket握手期间出错:意外响应代码:200

Html 连接到'的WebSocket;ws://localhost:52312/';失败:WebSocket握手期间出错:意外响应代码:200,html,sockets,websocket,Html,Sockets,Websocket,我试图实现一个简单的HTML5WebSocket,但连接根本没有建立起来&我在创建WebSocket对象时遇到了以下错误 到“ws://localhost:52312/”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:200 下面是代码 document.addEventListener("DOMContentLoaded", function (event) { function runHub() { if ("WebSoc

我试图实现一个简单的HTML5WebSocket,但连接根本没有建立起来&我在创建WebSocket对象时遇到了以下错误

到“ws://localhost:52312/”的WebSocket连接失败:WebSocket握手期间出错:意外响应代码:200

下面是代码

 document.addEventListener("DOMContentLoaded", function (event) {
        function runHub() {
            if ("WebSocket" in window) {

                console.log('WebSocket is supported by your browser.');

                //var serviceUrl = 'ws://localhost:52312/';
                var serviceUrl = 'ws://localhost:52312/home/GetNotificationCount';

                var protocol = 'Chat-1.0';
                var socket = new WebSocket(serviceUrl);

                socket.onopen = function () {
                    console.log('Connection Established!');
                };

                socket.onclose = function (error) {
                    console.log('Connection Closed!');
                    console.log('Error Occured: ' + JSON.stringify(error));
                };

                socket.onerror = function (error) {
                    console.log('Error Occured: ' + JSON.stringify(error));
                };

                socket.onmessage = function (e) {
                    if (typeof e.data === "string") {
                        console.log('String message received: ' + e.data);
                    }
                    else if (e.data instanceof ArrayBuffer) {
                        console.log('ArrayBuffer received: ' + e.data);
                    }
                    else if (e.data instanceof Blob) {
                        console.log('Blob received: ' + e.data);
                    }
                };


                if (!socket.readyState === WebSocket.CLOSED) {
                    socket.send($('#notificationCount').text);
                    //socket.close();

                }

            }
        }

        var run = setInterval(function () {
            runHub();
        }, 10000)
    });
有人知道这件事吗?

根据

一旦发送了客户的开场握手,客户必须 在发送任何进一步的数据之前,请等待服务器的响应。 客户端必须验证服务器的响应,如下所示:

  • 如果从服务器接收到的状态代码不是101,则 客户端根据HTTP[RFC2616]过程处理响应。在里面 特别是,如果客户端 接收401状态代码;服务器可能会重定向客户端 使用3xx状态代码(但客户无需遵循 否则,按以下步骤进行
  • 第4.2.2节详细说明:除了使用代码101和适当的头进行响应外,服务器还可以请求身份验证(响应代码401),可以重定向(3xx代码),并且如果您试图建立安全连接(如果您使用
    wss://
    协议),应该执行TLS握手


    位于
    localhost:52312
    的服务器响应了代码200-websocket标准,如上所述,该响应中没有定义任何含义。因此,客户有权提出异常。问题出在服务器上。

    您正在连接到什么?看起来您没有连接到需要websocket连接的对象,例如普通Web服务器。