我了解WebSockets是建立在TCP套接字上的,并且在消息完成方面提供了更加用户友好的界面(例如,请参见此SO问题:Differences between TCP sockets and web sockets, one more time)。
但是,仅此一项就可以证明在不涉及Web浏览器的情况下,通过TCP套接字选择websockets的理由?这样的设计选择是否有意义,还是应该将WebSocket的使用仅限于“ Web”环境?
答案 0 :(得分:3)
WebSockets的要点是它们可以集成到典型的HTTP基础结构中,即,它们以HTTP握手(或带有wss://的HTTPS)开始,并且还设计为处理HTTP代理,(从头开始)像HTTP,并且可以使用相同的端口,以便它们可以通过防火墙...
如果需要这些属性,那么即使在浏览器之外,WebSockets也是一个不错的选择。如果不需要这些,则较简单的协议可能就足够了。
答案 1 :(得分:2)
WebSocket与自定义TCP / IP解决方案相比具有优势,因为WebSocket遇到的连接问题较少。
对于端口443上的TLS + WebSockets(wss://
)尤其如此,这不是浏览器(或HTTP)所特有的。
这是因为许多防火墙,网桥和其他中介阻止了不同的TCP / IP端口或允许有限的流量通过。即使在更严格的环境中,通常也允许通过HTTP和HTTPS端口(80和443)进行通信,这增加了建立(和保留)连接的机会。