当前位置: 首页 > 编程语言 > C#

使用SignalRShare广播消息时忽略客户端

时间:2023-04-10 16:58:04 C#

使用SignalR广播消息时忽略客户端我想忽略请求为我的Web应用程序广播消息的客户端。我似乎能够做到这一点的唯一方法是缓存当前用户的connectionId:Identity.Name+"-connectionId",Context.ConnectionId,newCacheItemPolicy(){Priority=CacheItemPriority.Default,SlidingExpiration=TimeSpan.FromHours(1),AbsoluteExpiration=MemoryCache.InfiniteAbsoluteExpiration});返回base.OnConnected();){System.Runtime.Caching.MemoryCache.Default.Set(HttpContext.Current.User.Identity.Name+"-connectionId",Context.ConnectionId,newCacheItemPolicy(){Priority=CacheItemPriority.Default,SlidingExpiration=TimeSpan.FromHours(1),AbsoluteExpiration=MemoryCache.InfiniteAbsoluteExpiration});返回base.OnReconnected();这允许我在控制器操作方法中执行以下操作:IHubContexthubContext=GlobalHost.ConnectionManager.GetHubContext();hubContext.Clients.AllExcept((string)MemoryCache.Default.Get(HttpContext.Current.User.Identity.Name+"-connectionId")).sendAddedPasswordDetail(addedPassword);这种方法似乎有效......但我认为这可能是错误的做事方式有没有更好的方法来忽略请求客户端?有一个允许此特定异常的特定属性,hubContext.Clients.Others.YourMethodHere您可以在此处看到它。编辑:根据评论中的讨论,Others在使用GlobalHost.ConnectionManager.GetHubContext时不可用您将需要继续使用当前方法或找到一种方法将此活动委托给BroadcastHub以访问Others。以上是C#学习教程:使用SignalR广播消息时,忽略客户端分享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: