【发布时间】:2018-03-21 01:00:01
【问题描述】:
我已将 Microsoft.AspNetCore.SignalR.Client 实现为服务。我可以成功注入它并向集线器发送消息。但我不知道如何从那个特定的班级收听集线器(接收消息)。
我可以通过OnBroadcast 操作在HubClient 中接收消息。
public class HubClient : IHub
{
private HubConnection hubConnection;
private async Task ConnectAsync()
{
// Connect
hubConnection.On<string>("Broadcast", OnBroadcast);
}
public async Task Send(string message)
{
await hubConnection.SendAsync("method", message);
}
private void OnBroadcast(string message)
{
// Received message
}
}
如何接收和处理来自MyClass 的消息?我怎样才能让OnBroadcast(string message) 在MyClass 中工作,以便我可以对消息做一些事情?我有多个类,每个类都必须处理来自集线器的消息。
public class MyClass
{
private readonly IHub hub;
public MyClass(IHub hub)
{
this.hub = hub;
}
public Task Send(string message)
{
// Sending message to the hub works
await hub.Send(message);
}
// How can I process received messages here?
}
【问题讨论】:
标签: c# dependency-injection .net-core signalr