.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;
     }
 }
相关推荐
M1A12 小时前
小红书重磅升级!公众号文章一键导入,深度内容轻松入驻
后端
0wioiw03 小时前
Go基础(④指针)
开发语言·后端·golang
almighty273 小时前
C# WinForm分页控件实现与使用详解
c#·winform·分页控件·c#分页·winform分页
almighty274 小时前
C#实现导入CSV数据到List<T>的完整教程
c#·csv·格式转换·c#导入数据·csv数据导入
追逐时光者4 小时前
一款基于 .NET 开源美观、功能丰富的串口调试工具
.net
李姆斯4 小时前
复盘上瘾症:到底什么时候该“复盘”,什么时候不需要“复盘”
前端·后端·团队管理
javachen__4 小时前
Spring Boot配置error日志发送至企业微信
spring boot·后端·企业微信
瀚高PG实验室5 小时前
外网获取瀚高.NET驱动dll方法和使用案例
.net·瀚高数据库
seabirdssss5 小时前
使用Spring Boot DevTools快速重启功能
java·spring boot·后端
程序猿多布5 小时前
Lua和C#比较
c#·lua