在服务器端调用 SignalR 集线器方法

Nic*_*cke 2 c# server-side signalr-hub asp.net-core-signalr

我已经按照本教程(https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-0-preview1-getting-started-with-signalr/)到构建并运行一个基本的聊天应用程序。

我现在需要从服务器更新客户端。换句话说,我需要能够调用集线器方法服务器端。我发现了几个使用旧版本 SignalR / .NET 的示例,但没有一个想要很好地与 ASP.NET Core 2.1 一起使用。

请有人帮助我提供有关如何从服务器发送消息的指针(或示例)。我认为我缺少的特定位是如何从服务器端代码获取对活动集线器的引用,以便我可以调用它的方法。

感觉应该很简单,所以我可能遗漏了一些明显的东西。

谢谢,尼克。

aar*_*ron 5

集线器方法供客户端调用。

在服务器上,您注入IHubContext<ChatHub>并访问其ClientsGroups属性:

// Not hub method
public async Task Send(string message)
{
    await _chatHubContext.Clients.All.SendAsync("SendMessage", message);
}
Run Code Online (Sandbox Code Playgroud)