首页 > 解决方案 > 以不同模式运行多个集线器的 Azure SignalR 服务

问题描述

当 SignalR 服务推出时,我们能够在经典模式下运行集线器,这允许从无服务器功能 (REST API) 和 asp.net 核心集线器 (WS) 进行通信。现在根据 azure 门户上的警告,经典模式似乎已经过时,不应该使用。

警告消息说:“经典模式已过时并进行错误修剪。当所有集线器都有集线器服务器时请使用默认模式,如果没有,请使用无服务器模式。如果一些集线器有集线器服务器而其他集线器没有,我们建议创建两个单独的实例,一个是默认的,另一个是无服务器的。”

在我们的场景中,我们必须将 ASP.NET Core 集线器用于服务客户端仪表板(JS + 其他功能)和执行后台处理并将消息发送到 SignalR 服务以在仪表板上看到的无服务器功能。正如警告所暗示的那样,此设置需要在默认模式下运行一个集线器,在无服务器模式下运行一个集线器,假设这些功能将与无服务器通信并且 ASP.NET 核心与默认模式集线器通信。

那么主要的问题是,两个 SignalR 服务中心之间的通信将如何发生?我们需要来自无服务器模式的消息出现在默认模式集线器客户端上。这甚至是一个有效的场景,还是我们应该将所有内容转移到一种模式或另一种模式?

我在微软官方网站上找不到任何文档,任何解释设置外观和工作方式的链接都非常感谢。

标签: asp.netazureazure-functionsserverlesssignalr-service

解决方案


对于我们使用无服务器功能直接通过 SignalR 服务向组发送消息的特定用例,答案是使用“默认”模式,这种模式将允许同时使用服务器和功能。


推荐阅读