【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通信方法的补充,详细用法请参考视频~感谢~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在.NET Framework应用程序使用SignalR和Vue.js实现通信,你可以按照以下步骤进行操作: 1. 创建一个新的.NET Framework应用程序项目。 2. 在项目安装SignalR库。你可以使用NuGet包管理器来安装SignalR。 ``` Install-Package Microsoft.AspNet.SignalR ``` 3. 创建一个SignalR Hub类来处理服务器端的实通信逻辑。在Hub类,你可以定义一些方法,这些方法将通过SignalR进行调用并处理客户端的请求和响应。 ```csharp using Microsoft.AspNet.SignalR; public class ChatHub : Hub { public void SendMessage(string message) { // 处理来自客户端的消息 // 广播消息给所有连接的客户端 Clients.All.ReceiveMessage(message); } } ``` 4. 在应用程序的Startup类配置SignalR。 ```csharp using Microsoft.Owin; using Owin; [assembly: OwinStartup(typeof(YourNamespace.Startup))] namespace YourNamespace { public class Startup { public void Configuration(IAppBuilder app) { // 配置SignalR app.MapSignalR(); } } } ``` 5. 在Vue.js创建一个组件来处理客户端的实通信逻辑。在组件,你可以使用SignalR提供的JavaScript客户端库来与服务器进行通信。 ```javascript import * as signalR from '@microsoft/signalr'; export default { data() { return { connection: null, message: '' }; }, mounted() { // 创建SignalR连接 this.connection = new signalR.HubConnectionBuilder() .withUrl('/chatHub') .build(); // 定义接收消息的回调函数 this.connection.on('receiveMessage', (message) => { // 处理收到的消息 }); // 启动SignalR连接 this.connection.start() .then(() => { console.log('SignalR连接已建立'); }) .catch((error) => { console.error('SignalR连接建立失败', error); }); }, methods: { sendMessage() { // 发送消息到服务器 this.connection.invoke('sendMessage', this.message) .catch((error) => { console.error('消息发送失败', error); }); } } }; ``` 6. 在Vue.js应用程序使用上述组件来实现通信的功能。 ```html <template> <div> <input v-model="message" type="text"> <button @click="sendMessage">发送</button> </div> </template> <script> import ChatComponent from './ChatComponent.vue'; export default { components: { ChatComponent } }; </script> ``` 通过以上步骤,你就可以在.NET Framework应用程序利用SignalR和Vue.js实现通信的功能了。记得在.NET应用程序启动SignalR,并在Vue.js组件创建SignalR连接,并定义相应的回调函数来处理收发消息的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值