SignalR是一個實時通信庫,可以在客戶端和服務器之間建立實時連接。要使用SignalR處理實時數據流,首先需要在服務器端配置SignalR,并創建一個Hub類來處理客戶端的連接請求和消息傳輸。
services.AddSignalR();
然后,在Configure方法中配置SignalR路由:
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<ChatHub>("/chatHub");
});
public class ChatHub : Hub
{
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
}
const connection = new signalR.HubConnectionBuilder()
.withUrl("/chatHub")
.configureLogging(signalR.LogLevel.Information)
.build();
connection.on("ReceiveMessage", (user, message) => {
console.log(`${user}: ${message}`);
});
connection.start().then(() => {
connection.invoke("SendMessage", "Alice", "Hello");
});
通過以上步驟,可以使用SignalR處理實時數據流,實現客戶端和服務器端的實時通信。在Hub類中定義的方法可以處理各種消息類型,客戶端可以調用這些方法來實現實時的數據傳輸。