引用客户端上现有的SignalR连接

本文关键字:SignalR 连接 客户端 引用 | 更新日期: 2023-09-27 18:21:39

我在工作中遇到了一个项目问题,我希望这里有人能提供帮助。

在不详细介绍应用程序本身的情况下,我们有一个需要使用SignalR的定位服务。其想法是,每个客户端(当我说"客户端"时,我的意思是"使用应用程序的人")将被分配到一个特定的"任务",并每2秒(可配置)将其GPS位置发送给Azure工作人员角色,该角色将在两个Azure表中存储接收到的数据。然后,第二个工作者角色将从表中获取数据,并向执行给定任务的每个客户端发送SignalR消息,其中所有其他客户端的位置都分配给同一任务。

我目前拥有的是一个测试客户端(目前是Winform,但它将是一个UWP应用程序),它可以成功地使用SignalR将位置消息直接发送给其他客户端,我认为插入Azure方面的内容不会太困难,但我的问题是弄清楚如何使用SignalR组来确保消息只发送到特定的任务(我想最好的方法是用任务的ID来命名组),但当第一次建立集线器连接时,没有任务ID来命名该组,并且创建任务的代码点无法直接访问集线器信息。我可能遗漏了一些明显的东西,但现在似乎没有任何方法可以将客户端添加到创建任务时最初连接到的同一集线器连接上的组中。

TL-DR:我有没有办法在应用程序启动时连接的集线器上,从另一个项目中的类向SignalR组添加具有特定名称的客户端

引用客户端上现有的SignalR连接

1st在某处保留UserId-ConnectionId关联表。

第二个任务创建后创建信号R组。

3rd在任务分配时,将每个用户的连接与信号R组相关联。