我正在尝试在nginx下运行我的应用程序(使用socket.io),并且在服务器端出现WebSocket connection to 'ws://...' failed: Unexpected response code: 502
错误。
我已经读过nginx支持自v.1.3
以来的websockets所以我只是升级到了nginx v1.4.1 (stable)
。
这是我的conf:
server {
listen 80;
server_name website.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
access_log /var/log/nginx/website/access.log;
error_log /var/log/nginx/website/error.log;
}
}
更新:
我必须说我可以访问应用程序(所以我会监听端口3000)并且socket.io正在工作,除非出现此错误,但在某些情况下,emit
调用不会发送任何参数所以我得到undefined
。
我在这里错过了什么来避免这个错误?
答案 0 :(得分:-1)
我找到了一些可以避免此错误的内容:
io.set('transports', ['xhr-polling']);
所以socket.io现在可以进行AJAX调用,它可以完成这项工作,但肯定会慢得多,所以如果有人对这个问题有真正的关键,我仍然非常感兴趣!