【问题标题】:Manually push messages onto SignalR backplane手动将消息推送到 SignalR 背板上
【发布时间】:2013-11-18 03:38:28
【问题描述】:

我刚刚开始使用 SignalR 和 Azure ServiceBus 背板。这可以正常工作,发送到一个实例的消息最终在服务总线上传播并传播到所有其他 SignalR 实例。

我有一种情况,我想手动将消息添加到背板,即它不是由 SignalR 客户端生成的。此消息是由计划任务生成的,我想将其推送给所有客户端,因此也推送给所有实例。计划任务已经可以访问服务总线和 SignalR 库(如果需要)。

虽然我可以使用不同的主题和订阅自己重新创建功能,但如果我可以只使用现有的背板逻辑,工作量会少很多。

这可能吗?

【问题讨论】:

    标签: signalr azureservicebus


    【解决方案1】:

    您可以通过将客户端发送到集线器外部的集线器来执行此操作....又名:

    GlobalHost.ConnectionManager.GetHubContext<MyHubClass>().Clients.All.foo();
    

    您可以通过http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub了解更多信息

    【讨论】:

      【解决方案2】:

      当然,只需使用此 API 从集线器外部发送到客户端 http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub

      【讨论】:

      • 如果计划任务运行程序位于作为 Windows 服务运行的不同 VM 中,这是否有效?所以我只需在 VM 中配置 SignalR 以使用相同的服务总线并正常调用集线器?
      • 是的。只要所有内容都符合名称,您就可以从系统中的其他任何地方发送到集线器。
      猜你喜欢
      • 1970-01-01
      • 2014-12-16
      • 2022-01-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2015-01-12
      • 1970-01-01
      • 2020-07-31
      相关资源
      最近更新 更多