ASP.NET Core支持使用SignalR和Web API来实现Web通知功能。下面是一个代码示例,使用SignalR和ASP.NET Core实现Web通知:
dotnet add package Microsoft.AspNetCore.SignalR --version
public void ConfigureServices(IServiceCollection services)
{
services.AddSignalR();
// other services
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// other middleware
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub("/webNotificationHub");
// other endpoints
});
}
public class WebNotificationHub : Hub
{
// methods for sending notifications to clients
}
public class WebNotificationHub : Hub
{
private static ConcurrentDictionary _connections =
new ConcurrentDictionary();
public override async Task OnConnectedAsync()
{
_connections.TryAdd(Context.ConnectionId, Context.ConnectionId);
await base.OnConnectedAsync();
}
public override async Task OnDisconnectedAsync(Exception exception)
{
_connections.TryRemove(Context.ConnectionId, out string connectionId);
await base.OnDisconnectedAsync(exception);
}
public async Task Notify(string user, string message)
{
await Clients.User(user).SendAsync("Notify", message);
}
}
await _hubContext.Clients.User(userId).SendAsync("Notify", "New notification message