.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;
     }
 }
相关推荐
浮尘笔记12 分钟前
Go语言并发安全字典:sync.Map的使用与实现
开发语言·后端·golang
淡泊if15 分钟前
RESTful API设计标准:单体 vs 微服务的最佳实践
后端·微服务·restful
m0_7482299921 分钟前
Laravel7.x核心特性全解析
c语言·数据库·c#
金牌归来发现妻女流落街头33 分钟前
【Spring Boot注解】
后端·springboot
阿蒙Amon39 分钟前
C#每日面试题-Task和Thread的区别
java·面试·c#
无心水43 分钟前
数据库字符串类型详解:VARCHAR、VARCHAR2、CHARACTER VARYING的区别与选择指南
数据库·后端·varchar·varchar2·character·字符串类型·2025博客之星
老骥伏枥~1 小时前
VB.NET 中的委托(Delegate)
.net
郑州光合科技余经理1 小时前
同城配送调度系统实战:JAVA微服务
java·开发语言·前端·后端·微服务·中间件·php
Dontla1 小时前
GraphQL介绍(声明式查询)文件上传GraphQL文件上传
后端·graphql
还在忙碌的吴小二2 小时前
Go-View 数据可视化大屏使用手册
开发语言·后端·信息可视化·golang