无法使用javascript连接网络套接字

Sat*_*ari 5 javascript php sockets amazon-web-services websocket

我想连接到我的web套接字,它使用一些ip放在amazone实例上.我可以使用google rest客户端应用程序连接我的网络套接字和一些ip和端口,并且它的工作非常好.屏幕截图: 在此输入图像描述

但是,如果我想用java脚本连接它,它无法连接.这在2-3个月之前工作正常.我没有改变和事情,但它现在不起作用.如果我想与Firefox连接,则会产生错误.这是我的代码: -

function init() {
           var host = "ws://XX.XX.XXX.XXX:XXXX"; // SET THIS TO YOUR SERVER


                try {
                  var socket = new WebSocket(host);
                   // alert('WebSocket - status ' + socket.readyState);
                    log('WebSocket - status ' + socket.readyState);

                    socket.onopen = function (msg) {
                        alert('open');
                        alert("Welcome - status " + this.readyState);
                        log("Welcome - status " + this.readyState);

                        if (this.readyState != 1)
                        {
                            reconnect();
                        }
                    };
                    socket.onmessage = function (msg) {
                      //  alert("Received: " + msg.data);
                        log("Received: " + msg.data);

                    };
                    socket.onclose = function (msg) {
                     //   alert("Disconnected - status " + this.readyState);
                        log("Disconnected - status " + this.readyState);
                    };
                } catch (ex) {
                    alert(ex);
                    log(ex);
                }
                $("msg").focus();
            }
Run Code Online (Sandbox Code Playgroud)

这是警报状态0并在控制台中显示错误: -

Firefox can't establish a connection to the server at ws://XX.XX.XXX.XXX:XXXX.


var socket = new WebSocket(host);
Run Code Online (Sandbox Code Playgroud)

小智 3

我会尝试你的代码,对我来说工作得很好,我会用这个网页测试它: https: //www.websocket.org/echo.html,也许对测试目的有帮助。但我也发现了这个问题:websocket-rails,websocket握手错误,也许也有帮助。不过,我只需将代码中的主机更改为:“ws://echo.websocket.org”,一切都可以正常工作。希望您找到解决方案,并且此信息对您有所帮助。这是我用于测试的代码:

function init() {
var host = "ws://echo.websocket.org"; 
    try {
      var socket = new WebSocket(host);
       alert('WebSocket - status ' + socket.readyState);
        socket.onopen = function (msg) {
            alert('open');
            alert("Welcome - status " + this.readyState);

            if (this.readyState != 1)
            {
                reconnect();
            }
        };
        socket.onmessage = function (msg) {
          alert("Received: " + msg.data);
        };
        socket.onclose = function (msg) {
           alert("Disconnected - status " + this.readyState);
        };
    } catch (ex) {
        alert(ex);

    }
    $("msg").focus();
}
Run Code Online (Sandbox Code Playgroud)

*对不起,我的英语不好。