我正在处理一个我在工作中正在做的项目的问题,我希望这里有人能够提供帮助。
在没有详细介绍应用程序本身的情况下,我们有一个需要使用SignalR的位置服务。我的想法是每个客户端(当我说“客户端”,我的意思是“使用应用程序的人”)将被分配到特定的“任务”,并且每2(可配置)秒将其GPS位置发送到Azure工作者角色,它将接收的数据存储在两个Azure表中。然后,第二个辅助角色将从表中获取数据,并向给定任务上的每个客户端发送SignalR消息,并将所有其他客户端的位置分配给同一任务。
我目前所拥有的是一个测试客户端(目前是Winform,但它将是一个UWP应用程序),它可以成功地使用SignalR将位置消息直接发送给其他客户端,我不认为它也会是难以插入Azure端的东西,但我的问题是弄清楚如何使用SignalR组来确保消息只去特定任务(我想最好的方法是命名组的ID为但是当首次建立集线器连接时,没有任务ID来命名该组,并且代码中创建任务的点不能直接访问集线器信息。我可能遗漏了一些显而易见的东西,但现在似乎没有任何方法可以将客户端添加到最初在创建任务时连接到的同一个集线器连接上的组。
TL-DR:我有没有办法将客户端添加到具有特定名称的SignalR组,来自另一个项目中的类,以及应用程序启动时连接到的集线器?
答案 0 :(得分:0)
1st在某处保留UserId - ConnectionId关联表。
第二次创建任务时创建信号R Group。
第3次任务分配将每个用户与信号R组的连接关联起来。