低延迟应用程序通常需要比HTTP提供更快的通信方式。 示例包括多人在线游戏或聊天应用程序,这些应用程序需要实时交互式通信才能提供正确的用户体验。 WebSockets是一种实时通信协议,它支持客户端和服务器之间的开放,连续的双向连接。 这使得数据可以发送到客户端(即浏览器),即使客户端不必请求它。 使用HTTP协议时,服务器仅在客户端发送请求时才响应。
金融机构是WebSockets的另一个用例。 最近,我们与一家北美主要银行合作,使用WebSocket协议为其源服务器建立开放连接,以便在交易进行时无需客户端轮询即可发送实时通知。
WebSocket协议如何工作?
WebSocket连接作为常规HTTP连接开始。 要建立WebSocket连接,客户端和服务器在初始握手期间从HTTP协议升级到WebSocket协议(此协议交换机称为WebSocket握手)。 要启动此升级,客户端将使用以下标头向服务器发送请求:
-
Connection: upgrade (连接:升级)–表示客户端要更改协议
-
升级:WebSocket–表示请求的协议为”WebSocket”
如果服务器理解WebSocket协议并同意交换机,它会返回一个特殊的响应代码:101(交换协议),具有相同的两个标头。 此时,HTTP连接将通过相同的底层TCP/IP连接被WebSocket连接替换。 一旦建立,WebSocket数据帧就可以在客户端和服务器之间以全双工模式来回发送,直到一侧关闭连接。
WebSockets优于HTTP的主要优点包括:
-
持久连接:客户端无需频繁重新启动连接,检查新数据。
-
更低的延迟:WebSockets使用最小的开销。 由于存在连续连接,因此不再需要发送与HTTP请求(如标头和其他信息)相关的正常开销,从而减少了延迟。
-
全双工通信:WebSockets提供服务器和客户端之间的双向通信,以便双方可以同时通信和交换数据。 EdgeCast (现为Edgio)很高兴在我们的全球交付网络中为WebSocket协议提供支持。 随着我们进入物联网和边缘计算时代,WebSocket协议将使希望在边缘提供低延迟应用程序的公司受益。