我最近在HTTP服务器上启用了Websockets,它代理了我正在运行的Meteor应用程序。我看到它进行握手(即"切换协议")但是浏览器中的所有日志似乎都表明SockJS仍在使用HTTP XHR进行通信。
有人可以解释为什么会发生这种情况吗?我们将Apache 2.2与mod proxy_wstunnel的backport一起使用。我测试了一个独立的Websockets应用程序(不是Meteor),并且工作正常。
这是我在浏览器控制台中看到的快照,但之后我每隔30秒就会看到XHR POST。
[15:45:06.976] GET http://ma-meteor.envx.com/sockjs/251/svmzngwb/websocket [HTTP/1.1 101 Switching Protocols 9ms]
[15:45:07.681] POST http://ma-meteor.envx.com/sockjs/251/imibln7d/xhr [HTTP/1.1 200 OK 8ms]
[15:45:07.682] POST http://ma-meteor.envx.com/sockjs/251/imibln7d/xhr_send [HTTP/1.1 204 No Content 8ms]
[15:45:07.682] POST http://ma-meteor.envx.com/sockjs/251/imibln7d/xhr [HTTP/1.1 200 OK 8ms]
[15:45:07.683] POST http://ma-meteor.envx.com/sockjs/251/imibln7d/xhr [HTTP/1.1 200 OK 6ms]
[15:45:07.641] Connected to Meteor Server.