【问题标题】:How to use SignalR with non-UI-based clients?如何将 SignalR 与非基于 UI 的客户端一起使用?
【发布时间】:2013-12-29 17:49:00
【问题描述】:

在之前的解决方案中,我记得为单元测试设置了代码隐藏型集线器连接。我相信我使用了来自previous SignalR Hubs C# Client GitHub wiki 的代码。

SignalR Hubs API guide 中有一个使用基于控制台的客户端的示例:

stockTickerHubProxyProxy.On("Notify", () => Console.WriteLine("Notified!"));

在即将推出的应用程序中,将向多个客户端推送通知。其中一些客户端将基于 UI (JS),而其他客户端将是一些将执行某些任务的后端代码。

我熟悉基于 JS 的客户端连接。我的问题围绕附加代码隐藏类型的客户端,以及他们的方法如何“通知”。

我了解对于基于 UI 的客户端,其机制是通过对客户端“方法”的动态调用将更新推送到客户端。自从我接触 SignalR 以来已经有几个月了,在不涉及 UI 的情况下,最好的方法是什么?

为了验证我是否正确理解了文档,当使用 valid transport method 时,会通过 SignalR 框架通知(推送)C#-based (non UI/JS) client - 不需要客户端轮询?

【问题讨论】:

  • 我知道您所说的项目,您正在寻找的功能更像是 Group Notifications。一条数据在哪里广播给所有客户端?那么客户显然对数据所做的事情将取决于您的实施。我理解正确吗?
  • 基本上,是的。我没有考虑将客户端组织成组,但是,这是一个很好的抽象级别(如果需要)。假设我从 UI 更新了一个对象属性。来自中心的 updateWidget() 调用将通知所有其他 UI 客户端。我不想让一些轮询类型的侦听器检查一些更新的数据库字段,而是希望有一个代码隐藏类型的客户端,它在执行更新时会做一些事情。
  • @Greg - 看起来该示例通过 JavaScript 使用基于 UI 的组通知机制。我正在寻找的是一个基于 C# 的客户端,它对通知执行某些操作。我更新了问题的开头以反映这一点。

标签: c# .net-4.5 signalr-hub


【解决方案1】:

JS 和C# 客户端的基本机制是相同的。解决方案正是您在问题中提到的。 'On' 方法将使客户端订阅服务器触发的任何“通知事件”。您可以参考文档以获得更好的理解: http://www.asp.net/signalr

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多