文章图片
文章图片
文章图片
HTTP是基于TCP协议的 , 同一时间里 , 客户端和服务器只能有一方主动发数据 , 是半双工通信 。
通常 , 打开某个网页 , 我们每点击一次网页上的某个选项 , 前端就会发送一次HTTP请求 , 网站返回一次HTTP响应 。 这种由客户端主动请求 , 服务器响应的方式满足大部分网页的功能场景 。 但这种情况下 , 服务器不会主动给客户端发消息 。 而类似网页游戏这样的场景 , 是需要客户端和服务器之间互相主动发大量数据的 。
因此 , 我们需要一个基于TCP的新协议 , 即新的应用层协议WebSocket 。
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 被广泛传播和使用 。
- 在国产手机中华为、小米、OPPO、vivo如今早已成为了家喻户晓的品牌|为什么魅族手机的性价比那么低?
- 如今在智能手机不断发展的同时|为什么现在的手机品牌越来越多?
- 说起美国高通|为什么高通不愿意自己做手机?
- 无论是MP3时代|为什么魅族手机销量不如小米手机?
- 对于现在的智能手机来说|为什么一加氢os这么受年轻人喜欢?
- 随着国产手机的蓬勃发展|为什么三星手机在国际市场销量越来越少了
- 如今一提到国产手机品牌|为什么魅族手机的销量一直下降?
- 理器|为什么苹果手机仍然会卖得越来越贵?
- 在国内的手机品牌中|女生为什么喜欢ov手机?
- 手机充电为什么会越充越少?