对于 dApp 通知,WebSockets 可以更高 Web3 因为它们允许针对单个请求持续发出关键事件的实时通知。
对于 HTTP,每个连接在客户端发出请求时开始,并在请求得到满足时终止连接。
WebSocket 是一种双向通信协议,允许客户端和服务器之间进行交互式通信会话 。 它基于 TCP,通常用于需要实时通知功能的应用程序和服务。
WebSocket 服务器是一个在 TCP 端口上侦听的应用程序,遵循特定的协议。 WebSocket 是客户端和服务器之间的双向通信协议,允许客户端和服务器相互请求和发送数据。
相比之下,HTTP 是一种单向通信协议,客户端只能向服务器发送请求,服务器只能发送响应数据,HTTP 关系中的服务器永远不能向客户端请求。
WebSocket 连接是客户端和服务器之间的持续连接,而 HTTP 连接只是一次性的。 连接以客户端向服务器发出的每个请求开始,并以服务器的响应结束。 只要客户端和服务器希望它们打开,WebSocket 连接就可以保持,这意味着只要双方愿意,数据就可以通过该 WebSocket 流动,所有这一切都来自初始请求。
WebSocket 使用 WS 协议,该协议基于传输控制协议 (TCP) 。 它是一个面向连接的网络,这意味着必须首先在参与者之间建立连接,以便将数据路由到正确的位置。
相反,互联网协议根据数据包中的信息确定数据发送到哪里; 无需事先配置即可路由数据包。
服务器有两种方式向客户端发送数据。 客户端可以定期向服务器请求数据,称为 轮询 ,或者服务器可以自动发送数据给客户端,称为 服务器推送 .
WebSocket API 通过在初始请求使用服务器推送技术后保持打开状态来利用客户端和服务器之间的连接,从而消除客户端不断轮询服务器以获取新更新所产生的基础设施压力。
WebSocket 是一种双向通信方法,允许单个服务器请求进行多个响应。 WebSocket 也主要用于客户端-服务器通信,而 webhooks 主要用于服务器-服务器通信。
与 WebSocket 不同, 网络钩子 使用 HTTP 的协议是严格单向的:服务器仅在发出请求时才响应应用程序,每次请求得到满足时,连接就会断开。
使用 WebSocket 或 Webhook 之间的权衡来自于这样一个事实:与来自客户端的许多 Webhook 连接请求相比,基础设施设计可以更好地处理许多同时打开的 WebSocket 连接。
如果您的服务器应用程序作为云函数(AWS Lambda、Google Cloud Functions 等)运行,请使用 Webhooks,因为应用程序不会保持 WebSocket 连接打开。
如果发送的通知量较低,则 Webhooks 也会较高,因为仅在事件发生的情况下才会启动连接。
如果事件很少发生,最好使用 Webhook,而不是在客户端和服务器之间保持许多 WebSocket 连接打开。
最后,无论您是尝试将服务器与另一台服务器连接还是客户端与服务器连接也很重要; webhooks 更适合前者,websocket 更适合后者。
对于许多 Web3 dApp 来说,必须实时更新用户的交易状态。 如果没有,他们可能会获得糟糕的用户体验并离开您的应用或服务。
只要延迟需要尽可能低,就应该在 HTTP 请求上使用 WebSocket。 通过这样做,我们可以让用户在事件发生时立即收到有关事件的通知。 HTTP 相对要慢得多,因为客户端发送请求的频率限制了获取更新的频率。
BlogInnovazione.it