net:SignalR通信服务 发表于 2024-04-21 一、program添加服务12345c#复制代码//添加SignalR服务builder.Services.AddSignalR();//映射通讯中心的请求路径app.MapHub<ChatHub>("/Hubs"); 二、工具类封装1234567891011121314151617181920212223242526272829c#复制代码 //注意前端接受参数关键词:ReceivePublicMsg 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; } } 本文转载自: 掘金 开发者博客 – 和开发相关的 这里全都有