将用于微服务的SignalR与API网关集成

时间:2018-01-26 07:31:45

标签: architecture signalr microservices asp.net-core-signalr

我正在设计一个基于.Net核心的微服务系统。架构系统如下图所示。

enter image description here

问题是:有一个要求必须集成SignalR(实时)进行通知 我在微软的网站上看过SignalR。但我认为我应该把Hub放在哪里(API Gateway?,microservice?...)?如何为此系统应用signalR。

感谢。

1 个答案:

答案 0 :(得分:2)

根据我的理解,尽管它的名字,“中心”和#39;根本不是一个独立的服务,所以你不必在任何地方安装它。 SignalR是您的服务用于直接与客户通信的库。 SignalR可以通过两种方式使用,首先是“持久连接”。 API为服务提供了向客户端发送任意数据的方法。它的主要目的是抽象出类似于WCF的底层传输机制(例如Websockets,Ajax Long polling等......)。其次,' Hub' API是一个更高级别的抽象层(基于“持久连接”API),允许服务器调用“方法”。在客户端上(即类似于RPC的行为)。因此,每个客户都有一个进程中心'通过调用您在客户端代码中编写的函数(即事件处理程序)来调度传入消息(来自持久连接)。

在术语中也可能令人困惑,因为在某些描述中,我已经看到托管中心实例的服务被称为“中心”。因此,在您的情况下,您的任何服务都可能具有内置集线器,或者您可以拥有由其他服务共享的专用集线器服务。无论哪种方式,集线器都存在于一个或多个服务中。