我正在节点服务器上运行WebSockets应用程序。一切正常,除了我的应用程序在学校使用,他们的一些防火墙显然阻止端口80上的WebSockets。我读到像843这样的端口通常是未阻塞的,但我想在进行任何切换之前测试它。
如何测试打开的WebSockets端口?例如尝试端口80,443& 843从客户端报告哪些工作?任何教程或代码片段都会很棒......
答案 0 :(得分:3)
我一直在使用http://websocketstest.com/来阻止我的socket.io websockets。我刚刚遇到一个场景,其中一个客户端有防火墙阻止端口80上的流量。而不是坚持他们跳过箍我现在在443上听,没有必要在该端口上使用SSL为此目的。
在nginx中,我首先将所有流量重定向到socket.test.com端口80到端口443:
server {
listen 80;
server_name socket.test.com;
rewrite ^ http://test.com:443$request_uri?;
}
然后
server {
listen 443;
server_name socket.test.com
location / {
proxy_pass http://127.0.0.1:3004;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}
在端口3004上,socket.io服务器正在接受连接。作品!
2018年更新:感谢letsencrypt.com现在微不足道地添加https证书所以这一切都可以通过加密443来完成