什么是WebSocket协议?

通常,打开某个网页,我们每点击一次网页上的某个选项,前端就会发送一次http请求,网站返回一次http响应。这种由客户端主动请求,服务器响应的方式满足大部分网页的功能场景。但这种情况下,服务器不会主动给客户端发消息。而类似网页游戏这样的场景,是需要客户端和服务器之间互相主动发大量数据的。
websocket是什么?
websocket 是一种用于在单个 tcp 连接上进行全双工通信的网络协议。它使用类似于 http 的握手来建立连接,然后使用单独的持久连接来进行通信。这种方式使得 websocket 可以在浏览器和服务器之间进行实时通信,而不需要多次发送 http 请求来获取数据。这意味着连接是持久的,它一直保持打开,直到有一方主动关闭连接。这使得 websocket 非常适合用于实时应用程序,因为它不需要不断地建立和关闭连接。
websocket怎样建立连接?websocket 连接通常在客户端(例如浏览器)和服务器之间建立。客户端发送一个 http 请求来建立连接,然后服务器返回一个确认消息,表示已建立连接。之后,客户端和服务器可以通过这个连接进行双向通信。客户端可以向服务器发送消息,服务器也可以向客户端发送消息。消息可以是任意的字节数组,并且可以使用任意的格式进行编码。
建立websocket连接
websocket 是一种必不可少的客户端—服务器通信工具,需要充分了解其实用性并避免使用场景才能从其最大潜力中获益。
websocket的实际用途
最常见的用途是在实时应用程序开发中,它有助于在客户端持续显示数据。由于后端服务器不断发回此数据,websocket 允许在已打开的连接中不间断地推送或传输此数据,使此类数据传输更快,并利用了应用程序的性能。 
聊天应用程序开发人员在一次性交换、发布、广播消息等操作中调用 websocket 。由于使用相同的 websocket 连接来发送或接收消息,因此通信变得简单、轻量、快捷。在进行游戏应用程序开发的同时,服务器必须不间断地接收数据,而不要求刷新 ui。websocket在不影响游戏应用程序 ui 的情况下实现了这一目标。
从上述几个示例中,我们大概知道了在什么情况下不太适合使用,例如数据交互周期很长,甚至几小时一次的情况或只需要一次性处理数据时,不应采用 websocket协议。在这些情况下,使用 http 协议是一个明智的选择。由于 http 和 websocket 都用于应用程序通信,因此人们常常感到困惑,很难从这两者中选择一个。
websocket 与 http 的选择
websocket 是一种框架双向协议。与此相反,http 是一种单向协议,作用于 tcp 协议之上。由于websocket协议能够支持不间断的数据传输,因此主要用于实时应用程序开发。http 是无状态的,用于开发restful和 soap 应用程序。soap 仍然可以使用 http 来实现,但是 rest 被广泛传播和使用。
在 websocket 中,通信发生在两端,这使其成为更快的协议。在 http 中,连接是在一端建立的,这使得它比 websocket 有点慢。websocket 使用统一的 tcp 连接,需要一方终止连接。在它发生之前,连接保持活动状态。http 需要为单独的请求建立不同的连接。请求完成后,连接会自动断开。
http 长轮询
现今对网络数据安全性也存在更多需求,websocket 连接使用的是标准的 tcp 连接,因此它可以在任何支持 tcp 的网络上使用。它使用的是 ws:// 和 wss:// 协议前缀,这些前缀可以与任何域名或 ip 地址结合使用。websocket 连接是可以加密的,可以使用 tls(transport layer security,传输层安全)协议来保护数据的安全。这种加密连接使用的是 wss:// 协议前缀,与不加密的连接使用的 ws:// 协议前缀相区别。除此之外,websocket 还支持安全握手协议(secure handshake protocol),这使得它可以在浏览器和服务器之间进行加密通信。总的来说,websocket 具有较高的安全性,可以保护数据的安全。另外,需要注意的是,websocket不是基于http的新协议,因为websocket只有在建立连接时才用到了http,升级完成之后就跟http不再有任何关系。

解密宝马电池和电机核心工厂,看德国工业制造有多强大!
AI岂止于技术 解读人工智能的六大视角
通过HDMI的快速媒体切换告别空白屏幕
台积电被三星抢先一步后 3nm技术论坛延期
从草莽到高标准,NLP数据服务进入4.0时代
什么是WebSocket协议?
数控机床机器人的组成
NetApp EF570全闪存阵列的配置和评测方法资料概述
瘫痪或偏瘫患者将可站起来 国产商用化外骨骼机器人在沪正式发布
led电视如何选购
一文带你了解FPGA有什么用
记一次EDU漏洞挖掘
未来电子元器件将向小型节能耐高压化加速发展
TRIZ为智能医疗插上了创新的翅膀
正极材料市场2018年四大走向
预计到2023年全球IOT无人机出货量将达130万台
干式变压器与油浸变压器的优缺点分析
磷酸铁锂锂离子电池有哪些特点?
三相异步电动机的制动
成功实现相距50公里光纤的存储器间的量子纠缠