我刚刚开始使用SignalR和Azure ServiceBus背板。这种方法正常,发送到一个实例的消息最终在服务总线上传播并传播到所有其他SignalR实例。
我有一种情况,我想手动向背板添加消息,即它不是由SignalR客户端生成的。此消息由计划任务生成,我想将其推送到所有客户端,因此推送到所有实例。计划任务已经可以访问服务总线和SignalR库(如果需要)。
虽然我可以使用不同的主题和订阅自行重新创建功能,但如果我只能使用现有的背板逻辑,那么工作就会少得多。
这可能吗?
答案 0 :(得分:4)
当然,只需使用此API从集线器http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub
外部发送给客户答案 1 :(得分:1)
您可以通过发送到集线器以外的集线器客户端来实现此目的.... AKA:
GlobalHost.ConnectionManager.GetHubContext<MyHubClass>().Clients.All.foo();
您可以通过http://www.asp.net/signalr/overview/signalr-20/hubs-api/hubs-api-guide-server#callfromoutsidehub
了解更多信息