Blazor wasm客户端应用程序可以使用HttpClient来与服务器进行通信。另外一种可选的方法是使用SignalR Hub,这是一种实时通信技术。
以下是使用SignalR Hub在Blazor wasm应用程序中进行客户端服务器通信的示例代码:
在服务器端创建一个SignalR Hub:
public class DemoHub : Hub
{
public async Task SendMessage(string message)
{
await Clients.All.SendAsync("ReceiveMessage", message);
}
}
在客户端引用SignalR客户端库:
创建一个SignalR服务并连接到服务器:
@inject NavigationManager NavigationManager
@code {
private HubConnection hubConnection;
private async Task ConnectToServer()
{
var hubUrl = NavigationManager.ToAbsoluteUri("/demoHub");
hubConnection = new HubConnectionBuilder()
.WithUrl(hubUrl)
.Build();
hubConnection.On("ReceiveMessage", (message) =>
{
// handle received message
});
await hubConnection.StartAsync();
}
}
向服务器发送消息:
await hubConnection.SendAsync("SendMessage", "Hello world!");
当服务端从客户端接收到消息时,它将使用“ReceiveMessage”方法向所有客户端发送该消息。客户端可以使用“On”方法注册该方法以接收来自服务器的消息。 通过调用“SendAsync”方法,客户端可以向服务器发送消息。
通过SignalR Hub进行客户端服务器通信可以确保实时性并提供更好的性能。