我的 ExpressJS 应用程序与 Socket.io 一起运行,由于 SIO 较高端口的防火墙问题,我想切换到两者都在端口 80 上运行。
找到这个small article在我的开发机器上,它看起来运行良好。
我的问题是,这样做真的好吗?这是一个好的做法吗?如果不是为什么?
请指教。
最佳答案
在同一端口上运行 socket.io 和 Web 服务器是绝对有意义的。
webSocket 协议(protocol)(socket.io 所基于的)是专门为此设计的,它是 socket.io 使用的主要方式,原因有很多,包括同源权限以及端口 80 的客户端和服务器防火墙路由.
如果您没有意识到这一点,每个socket.io连接都以对特定路由的HTTP请求开始,然后一旦客户端和服务器之间的初始握手得到确认,协议(protocol)就会从HTTP“升级”为webSocket。由于所有 socket.io 连接都通过非常特定的路由进行连接,因此所有其他 HTTP 连接都可以轻松分离出来,并由您的 Web 服务器将其视为常规 Web 请求。
关于node.js - 端口 80 上的 SocketIO 与 Express 一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202671/