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

时间:2015-09-14 16:52:32

标签: node.js sockets express socket.io ubuntu-15.04

在Ubuntu 15.04上使用Apache我试图有效地从URL中删除端口3000以及将路径更改为http://example.com/{app}/socket.io...

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

虚拟主机更改:

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/'});

在我打开控制台日志并使用chrome时看到过多的GET请求之前,所有内容似乎都运行得很顺利。这肯定会杀死我的带宽,我想我设法不能正确地听套接字导致大量的GET请求。

有人可能会对我可能做错的事情提供一些指导吗?

1 个答案:

答案 0 :(得分:0)

您正在看到大量请求,因为socket.io正在回退到长轮询,因为Apache没有代理您需要启用此功能的websocket连接

mod_proxy_wstunnel 

然后添加

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