我是Websocket编程的新手,但我的最新项目需要在Ubuntu Linux服务器上部署一个Websocket服务器。我从网上读了一些,知道-
- websocket客户端将通过端口80/443连接到服务器,其协议标识符相应为ws/wss。http://www.websocket.org/aboutwebsocket.html
- Apache/Nginx web服务器通常会在服务器端监听80/443,所以我们必须配置Apache/Nginx来支持ws/wss协议,更好地将连接传输到websocket服务器,就像代理一样。
- 有一些Apache的websocket服务器插件,我也知道Nginx 1.3+原生支持websocket协议,配置它也可以与websocket服务器一起工作。
根据我所知道的,我认为我可以通过80/443一起部署Apache/Nginx和Websocket服务器。我想知道,如果我们可以单独使用websocket服务器?我想如果我们能写一个websocket客户端从其他端口连接到服务器,那么我们就能做到。
所以我们可以写一个websocket客户端从不同的端口连接服务器吗?是。一个独立的WebSocket服务器通常可以在任何端口上运行。浏览器客户端在非HTTP(S)端口上打开WebSocket连接到服务器没有问题。
默认端口为80/443的主要原因是它们是最可靠的大量使用端口,因为它们能够穿越许多公司防火墙,阻止所有其他端口上的所有流量。
如果这对你的用户来说不是问题(或者你有基于HTTP的回退),那么为WebSocket服务器使用备用端口是完全合理的(而且容易得多)。另一种选择是使用80/443端口,但使用单独的IP地址/主机名。