nginx作为NodeJS+socket的代理.Io:客户端未收到通知



我已经将nginx配置为像这样代理websockets:

location /socket.io {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

}

客户端连接正常,但是当服务器发出通知时:

io.sockets.emit("update",data);

客户端永远不会收到它:

var socket = io.connect("http://" + hostip + "/socket.io");
socket.on("update",function(data)
{
  console.log("got update: " + data);
});

如果我绕过nginx,一切都像预期的那样工作:

var socket = io.connect("http://" + hostip + ":8000");
socket.on("update",function(data)
{
  console.log("got update: " + data);
});

我错过了什么?说句题外话,为什么绕过nginx不是违反了单源策略?谢谢。

在浏览器中试试var socket = io.connect(location.host);。我认为你不需要/socket.io路径

相关内容

  • 没有找到相关文章

最新更新