从Socket.IO中删除端口并更改目录

在Ubuntu 15.04上使用Apache我试图从URL中有效地移除端口3000,并将path更改为http://example.com/{app}/socket.io...

使用ProxyPass和ProxyPassReverse我已经从URL中有效地移除了端口,并相应地更新服务器和客户端以更改path。

虚拟主机变化:

 ProxyPass /path/ http://example.com:3000/path/ ProxyPassReverse /path/ http://example.com:3000/path/ 

我做的服务器端更改如下:

 var io = require('socket.io')(http, {path: '/path/socket.io' }); app.get('/path/', function(req, res){ 

而我所做的客户更改如下:

 var socket = io({path: '/path/'}); 

一切似乎运行顺利,直到我打开我的控制台日志,看到使用铬时, GET请求过多。 这肯定会杀死我的带宽,我想我设法不正确地听取了套接字,导致大量的GET请求。

有人可以提供一些指导,我可能会做错什么?

你看到大量的请求,因为socket.io正在回退到长轮询,因为Apache不代理websocket连接,你需要启用它

 mod_proxy_wstunnel 

然后加

 ProxyPass "/path/socker.io" "ws://localhost:3000/"