socket.io 服务器到 relay/proxy 一些事件

socket.io server to relay/proxy some events

我目前有一个由 nodeJS web API 服务器生成的 socket.io 服务器。 UI 单独运行并通过网络套接字连接到 API。这主要用于通知和连接状态检查。

然而,API 还充当多个微服务的网关。其中之一负责计算 UI 呈现某些图表所需的数据。此操作是持久的,并且由于多种原因,只有在收到请求时才会开始计算。

简而言之,UI向API发送REST请求,API目前使用gRPC向微服务发送请求。 这很糟糕,因为它同时锁定了 API 和 UI。

为了避免锁定API上的套接字服务器应该能够中继微服务接收到的UI请求和"computation ended"事件,这样就什么都不会了锁定。这最终可能导致微服务上的 gRPC 服务器被删除。

socket.io可以实现吗? 如果不是 API 为 UI 接收到的每个微服务生成辅助套接字连接的唯一方法? 这是个坏主意吗?

我希望这很清楚,谢谢。

实际上我最终没有使用 socket.io。但是,如果 API 生成一个服务器并将不同的服务作为客户端连接,这仍然可以用它来完成,可以使用 https://socket.io/docs/rooms-and-namespaces/。 这样消息可以 "relayed" 甚至可以从服务器广播到两者以防万一。