2015-11-11 33 views
0

我遇到了一个项目问题,我在工作中正在进行的项目中,我希望这里有人能够提供帮助。引用客户端上现有的SignalR连接

没有在应用程序本身进行太多的细节,我们有一个需要使用SignalR的位置服务。这个想法是,每个客户端(当我说“客户端”我的意思是“使用应用程序的人”)将被分配给特定的“任务”,并将其GPS位置每2(可配置)秒发送到Azure工作者角色,它将把接收到的数据存储在两个Azure表中。然后,第二个工作人员角色将从表中获取数据,并向给定任务上的每个客户端发送SignalR消息,并将所有其他客户端的位置分配给相同的任务。

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

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

回答

0

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

第二次创建任务创建信号R组。

3rd Upon Task Assignment将每个用户的连接关联到信号R组。

+0

如果任务创建/分配类没有对集线器的引用,我如何在任务分配时创建SignalR组/分配连接到组? – Trihan

+0

任务分配应该至少有一个用户ID参考。所以使用这个用户ID你会得到中心引用。 –

+0

他们有一个用户ID参考,但我不确定这是如何与SignalR集线器相关的,因为它们完全分开。对不起,如果我听起来很愚蠢,我从来没有用过SignalR。 – Trihan

相关问题