Websocket是否面向繁琐?

时间:2016-09-19 14:31:53

标签: websocket

我正在查看Websocket的行为。 Websocket消息是否与TCP流不同?

例如,当我发送数据ABC,DEF,GHI时,它是否保证接收数据ABC,DEF,GHI?在TCP流中,不保证:我们可能会收到AB,DEFG,HI。

1 个答案:

答案 0 :(得分:4)

是的,它是面向消息的(实际上是面向框架的)。

RFC 6455

  

握手成功后,客户端和服务器将数据传回      在本说明书中称为的概念单元中      “消息”。在线上,消息由一个或多个组成      帧即可。 WebSocket消息不一定对应于a      特定的网络层成帧,可能是碎片消息      由中间人合并或分割。

     

...

     

WebSocket协议的设计原则应该是      最小的框架(唯一存在的框架是制作      协议框架而不是基于流的并支持      区分Unicode文本和二进制框架)。这是预料之中的      应用程序将元数据分层放在WebSocket之上      层,就像元数据在TCP之上分层一样      应用层(例如,HTTP)。

     

从概念上讲,WebSocket实际上只是TCP之上的一层      执行以下操作:

     
      
  • 为浏览器添加基于Web源的安全模型

  •   
  • 添加了寻址和协议命名机制来支持     一个端口上的多个服务和一个IP上的多个主机名     地址

  •   
  • 将TCP 上的框架机制分层,以返回到IP     建立TCP的数据包机制,但没有长度限制

  •   
  • 包括设计的带内附加结束握手     在代理人和其他中间人的存在下工作

  •