.net:SignalR通信服务

一、program添加服务

scss 复制代码
//添加SignalR服务
builder.Services.AddSignalR();

//映射通讯中心的请求路径
app.MapHub<ChatHub>("/Hubs");

二、工具类封装

csharp 复制代码
  //注意前端接受参数关键词: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;
     }
 }
相关推荐
名字还没想好☜6 分钟前
Java Collectors.groupingBy 进阶:多级分组、下游收集器与统计聚合一次搞定
java·windows·后端·python·spring
用户81818706274640 分钟前
第25章 Redis集群脑裂实录:一次真实故障复盘
java·后端
呃呃呃呃ex1 小时前
2026年古法编程的末法时代,如何评估自己完成迅速转行
前端·后端
EatFan1 小时前
从单体到模块化:我的 Spring Boot 项目为什么拆成 framework、module、server?
java·spring boot·后端
回家路上绕了弯1 小时前
Codex 与 ZCode 有什么区别?从开发工作流看 AI 编程工具怎么选
后端
Java内核笔记1 小时前
Spring Boot 4 可观测性源码剖析:OpenTelemetry 全链路打通日志、指标、追踪
java·后端
学渣超1 小时前
从一次早高峰数据库告警说起:你真的理解缓存该如何落地应用吗?
redis·后端·架构
中趴菜1 小时前
接口返回的JSON为什么有反斜杠
后端