一、program添加服务
builder.Services.AddSignalR();
app.MapHub<ChatHub>("/Hubs");
二、工具类封装
public class ChatHub : Hub
{
public async Task SendMsg(string userId, string msg)
{
string sendMsg = $"服务端发起的消息,user={userId},msg={msg}";
await Clients.All.SendAsync("ReceivePublicMsg", sendMsg);
await Clients.User(userId).SendAsync(msg);
await Clients.Others.SendAsync("ReceivePublicMsg", sendMsg);
}
public override Task OnConnectedAsync()
{
var id = Context.ConnectionId;
SendMsg(id, "测试消息");
return Task.CompletedTask;
}
public override Task OnDisconnectedAsync(Exception? exception)
{
var id = Context.ConnectionId;
return Task.CompletedTask;
}
}