升级Blazor项目到Net Core 6时,需要更新Microsoft.AspNetCore.SignalR.Client包以支持SignalR的最新版本。这也会影响到使用Websocket的SignalR客户端。如果不进行更新可能会导致Websocket失效。 以下是更新包和在Blazor中使用SignalR的示例代码:
1.通过NuGet在项目中安装Microsoft.AspNetCore.SignalR.Client的最新版本 2.在Startup.cs的ConfigureServices方法中添加以下代码:
services.AddSignalR(e => {
e.Transports = HttpTransportType.WebSockets;
});
3.在Blazor组件中使用SignalR,示例代码如下:
@page "/"
@using Microsoft.AspNetCore.SignalR.Client
@inject NavigationManager UrlNavigationManager
SignalR Chat
@foreach (var msg in messages)
{
- @msg
}
@code {
private HubConnection _hubConnection;
private List messages = new();
private string message = "";
private string username = "";
protected override async Task OnInitializedAsync()
{
var baseUrl = UrlNavigationManager.BaseUri;
_hubConnection = new HubConnectionBuilder()
.WithUrl($"{baseUrl}chatHub")
.Build();
_hubConnection.On("ReceiveMessage", (user, message) =>
{
var encodedMsg