用于维护 Web 套接字的消息传递应用程序的 Api 网关与 Websocket 服务器

问题描述 投票:0回答:1

我正在为一个消息应用程序进行高级系统设计。(100 万用户,每天 50 条消息) 有些人使用 Api 网关,有些人使用 Websocket 服务器用于以下目的: 每个服务器的职责是为每个在线用户提供一个端口(都维护套接字连接)

我想知道哪一种是正确的,或者应该使用哪一种,以及权衡是什么。

design-patterns api-gateway system-design high-level-architecture
1个回答
0
投票

如果我们谈论聊天系统,那么我们应该使用 WebSocket,因为 REST 效率低下,因为它需要实现手动池,但是 WebSocket 创建双向连接低延迟

此外,所有频繁更新的应用程序都使用 WebSocket,因为它比 HTTP Connection 更快。了解更多关于 什么是 Web 套接字以及它与 HTTP 有何不同?

更新:

简单地说,WebSocket 连接基于单个端口上的 HTTP(以及 TCP 作为传输)。 以下是步骤摘要。

  1. 服务器必须侦听传入的 TCP 套接字连接。这可以是您分配的任何端口 - 通常是 80 或 443。
  2. 客户端通过 HTTP GET 请求发起打开握手(否则服务器不知道要与谁通信)——这是“WebSockets”中的“Web”部分。在标头中,客户端将要求服务器将连接升级到 WebSocket。
  3. 服务器发送握手响应,告诉客户端它将把协议从 HTTP 更改为 WebSocket。
  4. 客户端和服务器双方协商连接细节。如果条款不利,任何一方都可以退出。
© www.soinside.com 2019 - 2024. All rights reserved.