0

我有应用程序限制:

  1. 使用 AsyncAPI 记录和规范 API
  2. 用于通信的 Websocket
  3. 将只有两个系统,彼此都是生产者和消费者(服务器和客户端)

我有一个问题,如果两端都是服务器和客户端(生产者和消费者),那么将使用多少个 websocket 进行通信?只有一个 websocket 就足够了,还是我必须使用两个 websocket?

4

1 回答 1

0

答案很大程度上取决于您的用例的更多细节。

将使用多少个 websocket 进行通信

我假设对于这个问题,您的意思是在生产者端(公开 WebSocket API 的服务器)应该有多少端点或选项(查询参数)可用。这实际上取决于您的用例。

服务器和客户端

如果客户端是前端并且您正在构建一些聊天或只是一个实时 UI,这取决于前端技术。我过去的方法是始终为每个视图建立一个单独的 websocket 连接,只使用给定视图所需的特定消息流。查看Gemini 的 v1 Websocket API示例。您有一个端点,您可以在其中传递具有多个不同查询参数的货币符号,以过滤您想要在给定视图中使用的消息,例如wss://api.gemini.com/v1/marketdata/btcusd?heartbeat=true

以上是我一直为服务器->客户端所做的,它直接转换为后端->前端。如果它转化为后端-> 多个其他后端,那么我将探索这些天加密货币交易 API 是如何做到的。您使用 Websocket 作为主要协议来建立连接,但随后您遵循另一个子协议来订阅和取消订阅您需要使用 atm 的不同消息。因此,基本上通过一个 Websocket 连接,您可以根据收到的消息灵活地请求不同的数据。查看Gemini 的 v2 Websocket API。这个还没有翻译成 AsyncAPI 文件,至少我没见过。

它有帮助吗?还是我完全误解了?

于 2021-07-29T11:58:14.817 回答