Socket.io 不能与 nginx 反向代理一起使用?

时间:2021-03-28 10:22:39

标签: javascript node.js nginx socket.io

我正在尝试将 socket.io 与我的 nginx 反向代理服务器一起使用,但它似乎不起作用..

Chrome 显示了这个美妙的瀑布:

截图:

enter image description here

和服务器的响应总是这样的:
96:0{"sid":"UU9d1DfZL5RD29kAAACq","upgrades":["websocket"],"pingInterval":25000,"pingTimeout":5000}2:40

nginx.conf:

server {
  listen 443 ssl;

  server_name socket.my.domain;

  ssl_certificate  /etc/letsencrypt/live/socket.my.domain/fullchain.pem;
  ssl_certificate_key  /etc/letsencrypt/live/socket.my.domain/privkey.pem;

  location / {
    proxy_pass http://127.0.0.1:1027/;
    chunked_transfer_encoding off;
    proxy_buffering   off;
    proxy_set_header Upgrade websocket;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;  # This line.
    proxy_set_header Host $host;
    proxy_http_version 1.1;
  }

  location /socket.io/ {
    proxy_pass http://127.0.0.1:1027/socket.io/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_redirect off;

    proxy_buffers 8 32k;
    proxy_buffer_size 64k;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
  }
}

socket.io 服务器:

const io = require("socket.io")(1027);

io.on("connection", (socket) => {
  console.log('connected');
});

前端 javascript:

let socket = io("https://socket.my.domain");

socket.on("connect", () => {
  console.log(socket.id);
});

服务器不断记录“已连接”消息,但客户端不记录该消息。
我的代码有什么问题?

0 个答案:

没有答案