.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;
     }
 }
相关推荐
Livingbody7 分钟前
通过huggingface学习【自动语音识别(Automatic Speech Recognition, ASR)】
后端
~plus~10 分钟前
Harmony核心:动态方法修补与.NET游戏Mod开发
开发语言·jvm·经验分享·后端·程序人生·c#
津津有味道11 分钟前
VB.net复制Ntag213卡写入UID
.net·nfc·ntag213·写uid
lv_fu16 分钟前
调用.net DLL让CANoe自动识别串口号
.net·dll·capl·canoe·vid pid·自动串口
步、步、为营17 分钟前
.NET 事件模式举例介绍
java·开发语言·.net
htj1019 分钟前
C# 使用正则表达式
正则表达式·c#
~plus~20 分钟前
WPF八大法则:告别模态窗口卡顿
开发语言·经验分享·后端·程序人生·c#
Livingbody25 分钟前
Transformers Pipeline 入门之【任务列表】
后端
就是有点傻28 分钟前
使用WPF的Microsoft.Xaml.Behaviors.Wpf中通用 UI 元素事件
c#
[email protected]32 分钟前
ASP.NET Core SignalR - 部分客户端消息发送
后端·asp.net·.netcore