【发布时间】:2016-12-05 08:16:03
【问题描述】:
我开发一个应用,服务器端技术是asp.net web api,客户端是javascript。在我的应用程序中,我使用 Signalr 通知客户端更新 - 从服务器向客户端推送通知。
所有信号器交互都发生在 Hub 类之外,因为推送来自 HTTP 请求,而不是来自客户端通过信号器推送到服务器。
在处理成功的 HTTP 请求后,我想让除提交请求的客户端之外的所有客户端都得到通知。
谁应对这些通知负责?处理法律请求后,我的服务器是否应该向客户端推送通知? (这就是我目前所做的)如果这是要走的路,我如何通知除了提出请求的客户之外的所有客户?提醒 - 因为请求是 Http 而不是信号器推送,所以向客户端的推送发生在集线器外部的类中。因此,我不能像您可能建议的那样使用 Context 或 Client.Others 属性。我怎么知道应该通知哪些客户?目前我只使用 Clients.All 并且提出请求的人也会收到我不喜欢的通知。
选项 2 是在我的服务器响应成功状态码之后。发出请求的客户端将负责通知其他客户端 - 这意味着他会将消息推送到服务器,然后服务器会将通知推送给所有其他客户端(这次它将在 signalr Hub 中,所以我可以使用客户。其他)。
我应该采取哪种方法?
【问题讨论】:
标签: c# asp.net-web-api push-notification signalr signalr-hub