从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/"