socket.io服务器以中继/代理某些事件

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

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

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

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

为了避免将套接字服务器锁定在API上,它应该能够中继UI请求和微服务接收到的“计算结束”事件,因此,不会锁定任何内容。这最终可能导致微服务上的gRPC服务器被删除。

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

我希望这很清楚,谢谢。

node.js sockets socket.io microservices api-gateway
1个回答
0
投票

我实际上最终没有使用socket.io。但是,如果API派生服务器并以客户端身份连接了不同的服务,则仍然可以使用https://socket.io/docs/rooms-and-namespaces/来完成此操作。这样,就可以在某些情况下“中继”消息,甚至可以从服务器向两者广播消息。

© www.soinside.com 2019 - 2024. All rights reserved.