2016-12-28 41 views
1

我是新来SignalR和有关于正确使用它在某些情况下与SignalR,的WebAPI和服务工作

对于我的应用程序正在使用signalR向客户端通信的操作状态的一些问题他们提交,而他们等待最后的回应。我的代码的结构为这样:

  1. 用户点击UI按钮
  2. 客户端和轮毂
  3. 就会调用我们的Web API的之间建立连接
  4. 的网络API使得调用服务层上的逻辑
  5. 服务层通过foreach处理数据。
  6. 对于每次迭代,该枢纽的UI

我已经能够做到这一切发送包含数据的更新进度条的信号。但是我必须使用GetHubContext设置一个新类型才能调用我的信号方法,因为我无法直接使用Hub对象。这样做不允许我将信号发送给特定的用户,因为服务层不知道,我只能向所有人广播。

我应该使用什么模式来实现这个目标?对于我目前的设置,似乎我需要使用等于它们的connectionId的组建立传入连接,将connectionId传送到各个层,并根据需要将信号发送到特定的“组”。这是最好的设置?

回答

1

我想说答案是肯定的,这似乎是最好的设置。请阅读这个问题的答案,我会说这会帮助你一个例子。

SignalR - Sending a message to a specific user using (IUserIdProvider) *NEW 2.0.0*

[编辑]

的关键点是所述的ConnectionId和用户之间的映射。你的情况,这将取决于你的实现,我不能告诉你来处理它的最佳途径......

此外,一个非常好的答案约SendToUser有谈到测试这里:

https://github.com/SignalR/SignalR/blob/release/tests/Microsoft.AspNet.SignalR.FunctionalTests/Server/Hubs/HubFacts.cs

它看起来像你可以在你的解决方案中使用的东西。 [编辑]

我希望它有帮助。