AspNetCore.SignalR を使用して SignalR サービスを開発しています。
以下は私のハブです:
public class NotificationHub : Microsoft.AspNetCore.SignalR.Hub
{
public override async Task OnConnectedAsync()
{
await base.OnConnectedAsync();
}
public override async Task OnDisconnectedAsync(Exception exception)
{
await base.OnDisconnectedAsync(exception);
}
}
以下は、クライアント側でハブのメソッドを呼び出すために作成した別のコンテキスト クラスです。
public class NotificationHubContext
{
private readonly IHubContext<NotificationHub> _context;
public NotificationHubContext(IHubContext<NotificationHub> context)
{
_context = context;
}
public async Task Broadcast(string groupId, string eventName, object data)
{
await _context.Clients.Group(groupId).SendAsync(eventName, data);
}
}
NotificationContext クラスの参照を自分の IoC コンテナーに挿入したいので、それを解決して BroadCast メソッドを呼び出し、クライアントへのメッセージ送信を処理する必要があります。
Service Bus を使用してシステムの別の部分からのメッセージをリッスンしています。Queue からメッセージを受信したら、QueueHandler から HubContext を使用して接続済みのクライアントに通知したいと考えています。