WebSocket 握手期间出错:意外的响应代码:500

Posted

技术标签:

【中文标题】WebSocket 握手期间出错:意外的响应代码:500【英文标题】:Error during WebSocket handshake: Unexpected response code: 500 【发布时间】:2016-02-02 07:12:44 【问题描述】:

我在我的网站上使用 websocket,但它随机向我发送以下错误消息:

与“ws://client.mydomain.com/socket.io/?EIO=3&transport=websocket&sid=4Kbec5T_XStAC949AACS”的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:500

这是我在我的应用程序中连接到 websocket 的方式(注意它是一个Angular 应用程序)。

    app.factory('clientSocket', ['$sessionStorage', 'socketFactory', function ($sessionStorage, socketFactory) 
    var connection = '';
    $.ajax(
        url: 'config.json',
        async: false,
        dataType: 'json',
        success: function (response) 
            connection = response.app_url;
        
    );
    var myiosocket = io.connect(connection);

    var clientSocket = socketFactory(
        ioSocket: myIoSocket
    );
    clientSocket.forward('someEvent');

    clientSocket.on('connect', function () 
        if ($sessionStorage.activeUser != null) 
            clientSocket.emit('userData', $sessionStorage.activeUser.user);
        
    );


    return clientSocket;
]);

我不太确定问题出在哪里,但基本上连接字符串如下所示:

http://client.mydomain.com

谁能告诉我怎么回事?

【问题讨论】:

Status 500 表示Internal Error - 因为一些请求成功完成而其他失败我猜问题出在服务器端处理请求。因此,请检查您发送到服务器的数据以及服务器如何处理它们。 你找到分辨率了吗? 【参考方案1】:

你不能通过在ajax的成功回调中添加其余代码来尝试吗?像这样:

app.factory('clientSocket', ['$sessionStorage', 'socketFactory', function ($sessionStorage, socketFactory) 
var connection = '';
$.ajax(
    url: 'config.json',
    async: false,
    dataType: 'json',
    success: function (response) 
        connection = response.app_url;
        var myIoSocket = io.connect(connection);

        var clientSocket = socketFactory(
    ioSocket: myIoSocket
);
clientSocket.forward('someEvent');

clientSocket.on('connect', function () 
    if ($sessionStorage.activeUser != null) 
        clientSocket.emit('userData', $sessionStorage.activeUser.user);
    
);


return clientSocket;
    
);

【讨论】:

以上是关于WebSocket 握手期间出错:意外的响应代码:500的主要内容,如果未能解决你的问题,请参考以下文章

WebSocket 握手期间出错:意外的响应代码:200

WebSocket 握手期间出错:意外的响应代码:500

WebSocket 握手期间出错:意外响应代码:503

websocket失败:WebSocket握手期间出错:意外响应代码:400

WebSocket 握手期间出错:意外的响应代码:301

Meteor:WebSocket 握手期间出错:意外响应代码:400