正如nginx 网站上所解释的那样,我已经为我的 nginx 使用了这些设置来将 websockets 代理到 NodeJS 服务器:
location /socket.io/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
一切正常,socket.emit() / socket.on() 互相发送消息;直到我发送了一条相当大的短信(26 kB 的 html)。
- NodeJS没有收到这个大消息(所以我猜问题出在nginx方面)
- nginx日志没有错误
- 一旦客户端发送了这条大消息,NodeJS 将停止从该客户端接收 socket.io 的心跳。
我究竟做错了什么?是否有我不知道的 nginx 设置?