如何从 Web 应用服务调用 SignalR 服务方法

How to call SignalR Service method from web app service

比方说,我有一个在 Azure Web 应用服务上运行的企业应用程序。在 100 多个页面中,我有 3-5 个页面需要实时提供。为了受益于 Azure SignalR 服务的实时功能,我想让客户登陆我的 SignalR 应用程序(在 RignalR 服务上运行)。但我找不到任何相关的示例文章。如何在代码之外调用 Hub 方法?任何其他解决我的问题的方法都非常受欢迎。我主要关心的是实时页面的性能。

如果您有一个 ASP.NET 核心 SignalR 服务器(即您的应用程序中有 类 从 Hub 派生),您不能通过 Azure 直接向客户端发送消息信号服务。您必须在执行此操作的 ASP.NET 核心应用程序中提供 API。

Azure SignalR 也支持 "serverless" 模式,在这种模式下,服务器上根本没有 Hub。在该模型中,客户端直接连接到服务(而不是首先连接到您的应用程序),然后您可以使用 REST API. This is a relatively new scenario so there isn't a lot of documentation. There are some blog posts and videos 在线主题向这些客户端发送消息,但没有很多文档。

如果您已经有一个 ASP.NET 核心应用程序,我建议您通过向您自己的应用程序添加一个 REST API 来实现这一点,该应用程序允许您应用程序中的其他服务通过调用它来发送消息API。在这个 API 的实现中,您可以使用 IHubContext<T> 来发送消息。