当服务器不允许开放其他端口时,可以使用nginx和apache的反向代理。
apache
在httpd.conf开启以下模块加载
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
然后添加以下代码:
ProxyPass /ws/ ws://localhost:1234
ProxyPassReverse /ws/ ws://localhost:1234
ProxyPass /ws/ http://localhost:1234
ProxyPassReverse /ws/ http://localhost:1234
然后就可以使用:
<script>
var protocol = 'ws://www.example.com/ws/';
var ws = new WebSocket(protocol);
...
</script>
nginx
在nginx配置文件中添加如下代码:
location /ws {
proxy_pass https://127.0.0.1:1234;
}