.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;
     }
 }
相关推荐
ssshooter8 分钟前
Tauri 2 Linux 上 asset://localhost 访问返回 403 避坑指南
前端·后端·架构
book123_0_9915 分钟前
spring 跨域CORS Filter
java·后端·spring
空空潍16 分钟前
Spring AI 实战教程(一)入门示例
java·后端·spring·ai
大阿明20 分钟前
Go基础之环境搭建
开发语言·后端·golang
polaris063024 分钟前
springboot接入deepseek深度求索 java
java·spring boot·后端
weixin_4250230029 分钟前
【Spring Boot 2.7 整合 WebSocket 完整实战】鉴权拦截+在线用户管理+定向消息推送
spring boot·后端·websocket
真实的菜31 分钟前
Spring Boot 升级全攻略:从 2.2 到 2.7 再到 3.x
java·spring boot·后端
傲文博一31 分钟前
在 Mac 上管理上千台服务器,我把低效操作拆成了 6 个可优化点
后端
wenroudelang888841 分钟前
Visual Studio的C#实例--2个窗体之间跳转
ide·c#·visual studio
字节高级特工44 分钟前
C++从入门到熟悉:深入剖析const和constexpr
前端·c++·人工智能·后端·算法