没有任何web浏览器的WebSockets



我知道WebSockets是建立在TCP套接字上的,在消息完成方面提供了更用户友好的界面(例如,请再次参阅这个SO问题:TCP套接字和web套接字之间的差异(。

但是,在没有web浏览器的情况下,仅凭这一点就可以证明选择web套接字而不是TCP套接字是合理的吗?这样的设计选择有意义吗?或者WebSocket的使用应该仅限于"Web"环境吗?

WebSockets的要点是,它们可以集成到典型的HTTP基础设施中,即它们从HTTP握手(或HTTPS与wss://(开始,还被设计用于处理HTTP代理,看起来(最初(像HTTP,并且可以使用相同的端口,以便它们可以通过防火墙。。。

如果需要这些属性,那么即使在浏览器之外,WebSocket也是一个不错的选择。如果不需要这些,那么不那么复杂的协议可能就足够了。

WebSockets比自定义TCP/IP解决方案具有优势,因为WebSockets遇到的连接问题较少。

对于端口443上的TLS+WebSockets(wss://(来说尤其如此,这是一个不特定于浏览器(或HTTP(的好处。

这是因为许多防火墙、网桥和其他中介阻止不同的TCP/IP端口或允许有限的流量通过。即使在更严格的环境中,也经常允许通过HTTP和HTTPS端口(80和443(进行通信,这提高了建立(和保留(连接的机会。

最新更新