WebSocket握手期间发生错误(在VPS上安装)

时间:2019-03-22 17:35:53

标签: php websocket wss

我第一次学习使用Websockets,也第一次我使用VPS服务器。 出现问题了。已经第二天了,我无法配置。

我的nginx.conf设置:

http:

http {
    keepalive_timeout 604800;
    proxy_connect_timeout 604800;
    proxy_send_timeout 604800;
    proxy_read_timeout 604800;

    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    upstream websocket {
      server 31.31.202.221:1100;
    }

服务器:

server {
location /ws {
    proxy_pass http://ws;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

测试客户端脚本:

<!DOCTYPE html>
<html>
    <head>
    <title>ffghghhhh</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    <div>546546546564</div>
    <script>
        var socket = new WebSocket("wss://31.31.202.221/ws");
        socket.onopen = function() {
          console.log("Connected.");
        };

        socket.onclose = function(event) {
          if (event.wasClean) {
        console.log('Closed');
          } else {
        console.log('BOOOOOMMM'); // killed process
          }
          alert('Code: ' + event.code + ' reason: ' + event.reason);
        };

        socket.onmessage = function(event) {
          console.log("Data: " + event.data);
        };

        socket.onerror = function(error) {
          console.log("Error" + error.message);
        };      
        var timerId = setInterval(function() {
          socket.send("Tick!");
        }, 2000);       
    </script>
    </body>
</html>

运行脚本会出现错误1006。

  

控制台错误:(索引):11 WebSocket连接到   'wss://31.31.202.221/ws'失败:WebSocket握手期间出错:   意外的响应代码:404(匿名)@(索引):11 3(索引):33   WebSocket已经处于CLOSING或CLOSED状态。

说实话,我已经很累了。我不了解如何运行这些网站。 防火墙已创建(启用)条件TCP 127.0.0.1 port 1100TCP 31.31.202.221 port 1100

如何解决此问题?我在做什么错了?

P.S。另外,我使用的是域而不是IP。无论如何,同样的错误。

0 个答案:

没有答案