我尽力理解TCP套接字和WebSocket之间的区别,并在以下问题中找到了许多有用的信息:
等等......
在我的调查中,我遇到了维基百科上的这句话:(英文链接):
WebSocket与TCP不同之处在于它启用了消息流而不是字节流。
我不太确定它的确切含义。您对此有什么解释吗?
我尽力理解TCP套接字和WebSocket之间的区别,并在以下问题中找到了许多有用的信息:
等等......
在我的调查中,我遇到了维基百科上的这句话:(英文链接):
WebSocket与TCP不同之处在于它启用了消息流而不是字节流。
我不太确定它的确切含义。您对此有什么解释吗?
WebSocket基本上是一种应用协议(参考ISO/OSI网络模型),面向消息,利用TCP作为传输层。
WebSocket协议的设计思想是重用客户端和服务器之间已建立的TCP连接。HTTP握手后,客户端和服务器开始使用WebSocket协议交换WebSocket信息包。使用HTTP握手可以克服客户端和服务器之间的任何障碍(例如防火墙),以提供某些服务(通常端口80可以被任何人从任何地方访问)。客户端和服务器可以在任何时候切换到使用HTTP,利用同一TCP连接(该连接永远不会释放)。
在幕后,WebSocket将TCP帧重构为一致的包/消息。全双工通道由服务器用于异步地向客户端推送更新: 通道处于开放状态,客户端可以调用任何未来/回调/承诺来管理任何异步WebSocket接收到的消息。
简而言之,WebSocket是一种高级协议(就像HTTP本身),建立在TCP之上(可靠的传输层,在每帧基础上),使得可以通过JS客户端构建有效的实时应用程序(以前使用Comet和长轮询技术从服务器获取更新,在WebSockets实现之前。请参见Stackoverflow帖子: WebSockets和长轮询用于回合制游戏服务器的区别)。