Blazor 可以连接到本地 SignalR hub。要实现此功能,需要使用“SignalR” NuGet 包,并在 Blazor 应用程序中添加 SignalR 服务的依赖项。然后,您需要将连接到 SignalR hub 的代码添加到您的 Blazor 组件中。
以下是一个示例,展示了如何在 Blazor 应用程序中连接到本地 SignalR hub:
Install-Package Microsoft.AspNetCore.SignalR -Version 1.1.0
services.AddSignalR();
@page "/chat"
@using Microsoft.AspNetCore.SignalR.Client
@using System.Threading.Tasks
SignalR Chat Sample
@code {
private HubConnection _hubConnection;
protected override async Task OnInitializedAsync()
{
_hubConnection = new HubConnectionBuilder()
.WithUrl("/chatHub")
.Build();
_hubConnection.On("ReceiveMessage", (user, message) =>
{
var encodedMsg = $"{user}: {message}";
// TODO: Update UI to show message
});
await _hubConnection.StartAsync();
}
private async Task SendMessageAsync()
{
var user = "User1";
var message = document.getElementById("messageInput").value;
await _hubConnection.InvokeAsync("SendMessage", user, message);
}
}
在这个示例中,我们创建了名为 _hubConnection 的 SignalR 连接。接下来,我们添加了 _hubConnection.On() 方法来处理从 Signal