Asp.Net SignalR Hub类中的操作详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.Net SignalR Hub类中的操作详解相关的知识,希望对你有一定的参考价值。

Hub类中的操作

在服务端我们要通过Hub类做一系列操作,下面就说说我们都可以做什么操作

 

客户端的发送消息操作

技术分享

 

调用所有的客户端的helloClient方法

Clients.All.helloClient();

 

调用除了给定ConnectionId的客户端之外的所有客户端的helloClient方法

Clients.AllExcept(Context.ConnectionId).helloClient();

 

调用指定的connectionId的客户端的helloClient方法

Clients.Client(Context.ConnectionId).helloClient();

 

给指定的ConnectionId集合的客户端调用helloClient方法

Clients.Clients(new List<string>() {"client1", "client2"}).helloClient();

 

调用指定名称的群组中的所有客户端helloClient方法, 此方法有重载,可以指定排除的ConnectionId

Clients.Group("room1").helloClient();

 

调用指定群组集合的所有客户端的helloClient方法,此方法有重载,可以指定排除的ConnectionId

Clients.Groups(new List<string>() {"room1", "room2"}).helloClient();

 

群组操作

还记得在持久连接类中可以往群组中添加组员和删除组员,在集线器中也是可以做到的。

技术分享

添加操作

Groups.Add(this.Context.ConnectionId, "room1");

删除操作

Groups.Remove(this.Context.ConnectionId, "room1");

 

注:Clients中的User和Users没有进行讲解,因为涉及到身份验证,留到之后博文再进行讲解

以上是关于Asp.Net SignalR Hub类中的操作详解的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp .Net Core SignalR Hub 中获取不记名令牌?

SignalR - 从服务器端代码调用 Hub 类方法(存在于单独的 MVC 项目中)

ASP.NET SignalR - 无法将存储在数据库中的消息列表发送给用户

ASP.NET Core SignalR :SignalR Javascript 客户端

ASP.NET SignalR 系列之源码与总结

如何从我的 ASP.NET Core 5 Web 应用程序中的 SignalR 操作中解决错误“无法访问已释放的上下文实例”?