SignalR全套系列之在.Net6中实现SignalR分组通信
Posted dotNET跨平台
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SignalR全套系列之在.Net6中实现SignalR分组通信相关的知识,希望对你有一定的参考价值。
微信公众号:趣编程ACE
关注可了解更多的.NET日常实战开发技巧,如需源码 请公众号后台留言 源码;
[如果觉得本公众号对您有帮助,欢迎关注]
前文回顾
【SignalR全套系列】之在.Net6中实SignalR通信SignalR中给客户端分组调用演示
服务端代码实现
1.Program.cs 文件编写
1// 捕获一个 /groups 节点 映射到 GroupHub 类里面
2app.MapHub<GroupHub>("/groups");
2.自定义一个GroupHub类
1// GroupHub 类继承 Hub 类
2public class GroupHub : Hub
3
4 // 添加组 根据客户端的ConnectionId 添加到组名 为 testGroup 的组中去
5 public Task Join() => Groups.AddToGroupAsync(Context.ConnectionId, "testGroup");
6
7 // 从testGroup 去除对应的客户端
8 public Task Remove() => Groups.RemoveFromGroupAsync(Context.ConnectionId, "testGroup");
9
10 // 只有所在组的客户端可以接收到服务端发送的消息
11 public Task Message() => Clients
12 .Groups("testGroup")
13 .SendAsync("groupMessages", new TransData(Guid.NewGuid(), "属于 testGroup 才能接收到数据"));
14
客户端代码实现
1 <script src="signalr.js"></script>
2 <script>
3 let connection = new signalR.HubConnectionBuilder()
4 .withUrl("/groups") // 调用 groups 路由
5 .build();
6
7 // groupMessages 钩子函数
8 connection.on('groupMessages', data => console.log("message", data));
9
10 // 和服务端建立连接 及其回调函数
11 connection.start().then(() => console.log("connected"));
12
13 // 调用Hub 中定义的方法
14 const join = () => connection.send('Join');
15 const remove = () => connection.send('Remove');
16 const messageMethod = () => connection.send('Message');
17
18
19 </script>
以上便是对上文SignalR通信方法的补充,详细用法请参考视频~感谢~
以上是关于SignalR全套系列之在.Net6中实现SignalR分组通信的主要内容,如果未能解决你的问题,请参考以下文章
SignalR全套系列之在.Net6中实现SignalR分组通信
SignalR全套系列之在.Net Core 中实现Server-Send Events消息推送