Blazor 服务端 SignalR 是用于在 Blazor 服务器应用程序和客户端之间启用实时通信的技术。以下是使用 Blazor 服务端 SignalR 进行实时通信的示例代码:
services.AddSignalR();
@using Microsoft.AspNetCore.SignalR.Client
@inject NavigationManager NavigationManager @inject HubConnectionBuilder HubConnectionBuilder
@code { private HubConnection hubConnection;
protected override async Task OnInitializedAsync()
{
hubConnection = HubConnectionBuilder.WithUrl(NavigationManager.ToAbsoluteUri("/chatHub")).Build();
await hubConnection.StartAsync();
hubConnection.On("ReceiveMessage", (user, message) =>
{
// 处理接收到的消息
});
}
public async Task SendMessageAsync(string user, string message)
{
await hubConnection.InvokeAsync("SendMessage", user, message);
}
}
public class SignalRHub: Hub { public async Task SendMessage(string user, string message) { await Clients.All.SendAsync("ReceiveMessage", user, message); } }
以上就是 Blazor 服务端 SignalR 的工作方式和示例代码。