Signalr 手动将消息推送到信号机背板上

Signalr 手动将消息推送到信号机背板上,signalr,azureservicebus,Signalr,Azureservicebus,我刚刚开始使用Signal和Azure ServiceBus背板。这是正确的,发送到一个实例的消息在服务总线上结束,并传播到所有其他信号器实例 我有一种情况,我想手动将消息添加到背板,即它不是由信号器客户端生成的。这个消息是由一个计划的任务生成的,我想把它推送到所有客户机上,从而推送到所有实例上。计划任务已经可以访问服务总线和信号器库(如果需要) 虽然我可以使用不同的主题和订阅自己重新创建功能,但如果我可以只使用现有的背板逻辑,工作就会少很多 这是可能的吗?当然,只需使用此API从集线器外部发送

我刚刚开始使用Signal和Azure ServiceBus背板。这是正确的,发送到一个实例的消息在服务总线上结束,并传播到所有其他信号器实例

我有一种情况,我想手动将消息添加到背板,即它不是由信号器客户端生成的。这个消息是由一个计划的任务生成的,我想把它推送到所有客户机上,从而推送到所有实例上。计划任务已经可以访问服务总线和信号器库(如果需要)

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


这是可能的吗?

当然,只需使用此API从集线器外部发送到客户端

您可以通过向集线器发送到集线器外部的客户端来完成此操作。。。。又名:

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

您可以通过

了解更多信息如果计划的任务运行程序位于另一个作为Windows服务运行的VM中,这是否有效?所以我只需要在VM中配置SignalR,以使用相同的servicebus并像正常情况一样调用集线器?是的。只要所有内容都与名称匹配,就可以从系统中的任何其他位置发送到中心。