什么是 WebSocket?18 Mar 2025 | 8 分钟阅读 WebSocket 是客户端和服务器之间持续的双向通信通道。客户端可以是任何网络浏览器,服务器可以是任何后端系统。WebSocket 使用 HTTP 请求/响应连接,可以传输任意数量的协议,并且无需轮询即可提供服务器到客户端的信息。它允许双向数据传输,我们可以同时将数据从客户端传输到服务器,反之亦然。 这项先进技术开启了客户端和服务器之间交互式的双向通信。通过使用 WebSocket API,我们可以将信息发送到服务器,并在运行时接收响应,而无需轮询服务器以获取响应。 WebSocket 使用基于 TCP 的网络协议来指定网络之间的数据传输。它是一种广泛使用的网络协议,几乎所有客户端都支持,因为它可靠且高效。TCP 协议在两个端点之间建立通信。通常它被称为套接字。 WebSocket API 等双向连接技术允许数据同时双向流动,从而提供了一种快速传输数据的方式。因此,WebSocket 允许 Web 应用程序与 WebSocket 服务器通信,而无需中断以提供实时数据。 下图解释了 WebSocket 如何传输数据 ![]() 它是如何工作的? 要了解 WebSocket 的工作原理,首先我们需要了解网站如何通过 HTTP 协议工作以及网站如何在不使用 WebSocket 的情况下访问数据。通常,网页通过创建 HTTP 连接来通过 HTTP 协议提供服务。在这里,数据根据客户端的请求由 HTTP 协议提供服务。 每次客户端请求服务器时,每个操作都有一个指定的响应,服务器会相应地发送响应。 简而言之,HTTP 协议遵循请求和响应架构,这会导致响应延迟。 ![]() WebSocket 协议与 HTTP 协议的工作方式不同。它可以通过动态调用方法实时传输数据。我们所需要做的就是使用 WebSocket 协议建立从客户端到服务器的连接。WebSocket 协议将握手传输到客户端。它包含识别所需数据传输信息的所有必要信息。 一旦连接建立,通道就会打开,并且在握手后保持打开状态,以允许持续通信。因此,服务器可以向客户端发送数据,而无需请求。因此,每当服务器收到新数据时,它都会通过相同的通道将其传输到客户端,而无需进一步请求。 要使用 Socket 启动通信,客户端像 HTTP 一样提交请求,并打开通信通道。之后,维护 TCP 连接以传输数据。 ![]() Web 应用程序中遵循套接字方法来发送推送通知。 何时需要使用 WebSockets?如果任何 Web 应用程序的速度至关重要,WebSocket 将非常有用。需要运行时数据更新并需要高速连接但具有低延迟连接的网站应使用 WebSocket。 以下是一些 WebSocket 必须与应用程序集成的示例。 需要实时数据更新的 Web 应用程序 某些 Web 应用程序需要实时数据更新;此类应用程序应具有 Web 套接字连接。这些 Web 应用程序使用 WebSocket 向客户端显示数据,而无需刷新页面。在此类应用程序中,后端服务器通过连接的通道连续发送数据。后端使用已打开的相同连接来传输更新的数据。因此,它执行快速数据传输并提高应用程序性能。 这些网站的示例包括交易网站和实时体育比分网站。交易网站将持续显示价格和其他数据的波动和变化,而无需刷新网页。服务器通过连接的通道持续将这些数据推送给客户端。 实时体育比分数据应用程序也遵循类似的方法。当比分更新时,它会通过连接的套接字通道从后端推送。 游戏应用程序 WebSocket 协议是游戏应用程序中必须使用的协议。您在玩游戏时一定注意到很多事情,例如 UI 在不刷新页面的情况下更新,以及分数和目录在游戏运行时更新。在多人游戏中,您还可以与同伴玩家聊天。所有这些都得益于 WebSocket 的实现。因此,它在游戏应用程序中非常有用,可以为用户提供无缝的用户界面。 聊天应用程序 如今,聊天应用程序非常流行,可以在运行时共享媒体和内容,甚至无需刷新页面。此外,它们还提供跟踪共享消息和媒体的功能,无论是已送达、已读还是下一个用户已采取行动。想象一下,所有这些都可以通过实现 WebSocket 来实现。 在聊天应用程序中,WebSocket 在打开时建立连接。之后,它不断地在用户之间交换、发布和广播消息和媒体。为了端到端数据传输,它使用相同的 Web 套接字来传输数据。它通过客户端 ID 识别用户。 除了上面讨论的用例,它还有以下用途
何时应避免使用 WebSocket? WebSocket 应用于需要从网络处理实时数据更新或连续数据流的场景。如上所述,我们已经讨论了 WebSocket 的大多数常见用例。因此,如果我们不需要实时处理任何数据,就没有必要使用 WebSocket。 例如,如果我们需要获取旧数据,或者当应用程序提供给客户端时获取一次数据,我们就不需要使用 WebSocket。在这种情况下,我们应该使用 HTTP 协议来满足用户请求。在这种情况下,我们可以使用 REST API 来满足用户请求。如果服务器上的数据不是实时更新的,REST API 足以满足用户请求。 让我们了解 WebSocket 和 HTTP 连接之间的区别。 WebSocket 和 HTTP 连接之间的区别在处理网络请求时,最明显的问题是应该选择 http 还是 WebSocket? 超文本传输协议 (HTTP) 是一种客户端-服务器通信协议,它支持请求-响应模型,其中服务器根据用户的请求进行响应。在 HTTP 中,客户端可以是向服务器发送请求的 Web 浏览器。它将是第一个发起通信的人,服务器将响应相应的请求。一旦请求得到服务,连接将被关闭。 在这里,我们讨论了两种协议之间的一些主要区别,这将清楚地说明在哪些条件下我们应该使用 WebSocket 和 HTTP 连接。
HTTP 的用例 以下是一些 HTTP 协议的常见用例
Web Sockets 的用例 以下是一些 Web Sockets 协议的常见用例 建议在需要实时数据或信息流(例如实时体育赛事或聊天应用程序)的应用程序中使用 WebSockets。 它适用于在数据库更新上进行一些动态数据传输并期望持续频繁更新的应用程序。 社交媒体应用程序必须与多个用户建立连接。在此类应用程序中,Socket 将帮助客户端持续跟踪更新。 总结 WebSocket 是一种先进的技术,它开启了客户端和服务器之间交互式的双向通信。通过使用 WebSocket API,我们可以将信息发送到服务器,并在运行时接收响应,而无需轮询服务器以获取响应。它允许双向数据传输,我们可以同时将数据从客户端传输到服务器,反之亦然。 超文本传输协议 (HTTP) 是一种客户端-服务器通信协议,它支持请求-响应模型,其中服务器根据用户的请求进行响应。在 HTTP 中,客户端可以是向服务器发送请求的 Web 浏览器。它将是第一个发起通信的人,服务器将响应相应的请求。一旦请求得到服务,连接将被关闭。 在这里,我们讨论了什么是 WebSocket 及其用例。此外,我们讨论了它与 HTTP 协议的区别及其用例。 |
我们请求您订阅我们的新闻通讯以获取最新更新。