Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 引用客户端上的现有信号器连接_C#_Asp.net_Azure_Signalr - Fatal编程技术网

C# 引用客户端上的现有信号器连接

C# 引用客户端上的现有信号器连接,c#,asp.net,azure,signalr,C#,Asp.net,Azure,Signalr,我在工作中遇到了一个问题,我希望这里有人能帮助我 在不涉及应用程序本身太多细节的情况下,我们有一个需要使用信号器的位置服务。其想法是,每个客户端(当我说“客户端”时,我的意思是“使用应用程序的人”)将被分配到一个特定的“任务”,并每2(可配置)秒将其GPS位置发送到Azure worker角色,该角色将接收到的数据存储在两个Azure表中。然后,第二个工作者角色将从表中获取数据,并向给定任务中的每个客户机发送一条信号器消息,同时将所有其他客户机的位置分配给同一任务 我目前拥有的是一个测试客户端(

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

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

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


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

首先在某处保留一个UserId-ConnectionId关联表

第二,在创建任务时创建信号R组


任务分配时,将每个用户的连接与signal R组相关联。

如果任务创建/分配类没有对集线器的引用,我如何在任务分配时创建signal R组/将连接分配给该组?任务分配至少应该有一个用户Id引用。因此,使用这个用户Id,您将获得集线器引用。它们确实有一个用户Id引用,但我不确定这与信号集线器有何关系,因为它们是完全独立的。抱歉,如果我听起来很愚蠢,我以前从未使用过SignalR.public override Task OnConnected(){RTMServerFactory.GetServer().AddConnectionsToUser(Context.ConnectionId,Int32 UserId);return base.OnConnected();}其中AddConnectionUser是保持此关联的存储方法。显然,RTMServerFactory不存在。尝试用谷歌搜索,但在代码中找不到任何示例。当前我的SignalR hub位于解决方案中包含的ASP.NET web应用程序中,这会有什么不同吗?