问题描述
我有应用程序限制:
- 使用 AsyncAPI 来记录和规范 API
- 用于通信的 Websockets
- 只有两个系统,它们都是彼此的生产者和消费者(服务器和客户端)
我有一个问题,如果两端互为服务器和客户端(生产者和消费者),那么将使用多少个 websockets 进行通信?只有一个 websocket 就足够了,还是我必须使用两个 websocket?
解决方法
答案很大程度上取决于您的用例的更多细节。
将使用多少个 websockets 进行通信
我假设这个问题是指生产者端(公开 WebSocket API 的服务器)应该有多少端点或选项(查询参数)可用。这真的取决于您的用例。
服务器和客户端
如果客户端是前端并且您正在构建一些聊天或只是实时 UI,则这取决于前端技术。我过去的方法是始终为每个视图建立一个单独的 websocket 连接,只使用给定视图所需的特定消息流。看一下 v1 Websocket API for Gemini 的例子。您有一个端点,您可以在其中传递具有多个不同查询参数的货币符号,以过滤您想要在给定视图中使用的消息,例如 wss://api.gemini.com/v1/marketdata/btcusd?heartbeat=true
以上是我总是为服务器->客户端所做的,它直接转换为后端->前端。如果它转化为后端-> 多个其他后端,那么我将探讨这些天加密货币交易 API 是如何做的。您使用 Websocket 作为主要协议来建立连接,然后您遵循另一个子协议来订阅和取消订阅您需要使用 atm 的不同消息。因此,基本上通过一个 Websocket 连接,您可以根据收到的消息灵活地请求不同的数据。看看v2 Websocket API for Gemini。这个还没有翻译成AsyncAPI文件,至少我没见过。
有帮助吗?还是我完全误解了?