微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure SignalR All.SendAsync是否将消息发送给所有客户端,或者仅发送给定方法名称的客户端?

如何解决Azure SignalR All.SendAsync是否将消息发送给所有客户端,或者仅发送给定方法名称的客户端?

问题:为了尽量减少按消息收费,我想按方法名称限制消息。 根据下面的图片,在以下情况下,我需要知道SignalR将向哪些客户端发送消息:

1。)创建中心“ / MyHub”

2。)3个用户(在Angular客户端上)使用名为“ Post_A”的方法向集线器注册

3。)然后,两个不同的用户使用名为“ Post_B”的方法在同一个集线器中注册

4。)如果API服务器通过Clients.All.SendAsync(“ post_B”,dto)发送更新,它将仅发送给用户3和4?还是该消息会发送给所有五个用户

奖金!如果答案是所有消息都发给所有用户,是否可以选择不使用组?我不认为每次用户查看新帖子(会有成千上万的帖子)时,组都不会工作而不会产生很多额外的开销。

谢谢!

enter image description here

解决方法

进行了一些测试。

SignalR的Clients.All.SendAsync( MethodName ,对象)不会向所有客户端发送消息,即使它们尚未使用方法 MethodName注册

enter image description here

正如您在上面的客户端日志中看到的那样(在打开SignalR的日志记录到控制台后),客户端在收到未注册方法的消息时会发出警告。

因此,组是限制邮件的唯一选项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。