egg-websocket-plugin icon indicating copy to clipboard operation
egg-websocket-plugin copied to clipboard

使用npm run start无法连接websocket

Open tmkmk opened this issue 4 years ago • 3 comments

正式环境下没办法连接websocket啊.

tmkmk avatar Feb 24 '21 08:02 tmkmk

@tmkmk 这个插件已经在正式项目中运行了很久才开源出来的,如果需要协助,请提供一个最小可复现你的问题的代码仓库

flarestart avatar Feb 24 '21 08:02 flarestart

我也存在这个问题,egg框架中,使用npm run dev可以正常协同,使用npm run start无法实时。

wuhaihan avatar Jul 19 '23 09:07 wuhaihan

@wuhaihan @tmkmk 我使用这种方式部署的项目,是能正常使用。不能使用的原因有可能是要配置Nginx代理ws协议

// server.js
const egg = require('egg')
process.env.NODE_ENV = 'production'

// const workers = Number(process.argv[2] || require('os').cpus().length)
egg.startCluster({
  workers: 2,
  baseDir: __dirname,
  sticky: false,
  port: 17121,
  NODE_ENV: process.env.NODE_ENV
})

Nginx配置:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:5000;  # 将请求代理到 WebSocket 服务器
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade; # 重要
        proxy_set_header Connection "Upgrade"; # 重要
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

bubao avatar Jul 24 '24 02:07 bubao