是否可以使用 SignalR 进行后台任务

Bob*_*421 5 signalr

我正在使用 Microsoft SignalR 来向浏览器推送通知。这些通知是由其他浏览器的操作触发的。我想做一个后台任务,有时会发送通知。例如,在 12:45:21 我想向所有连接的用户发出通知,即使他们什么都不做。有可能这样做吗?

Chr*_*mon 4

SignalR 不支持您运行后台任务,但如果您正在运行后台任务,则无法使用 SignalR 中心调用客户端方法并发送任何所需的通知来停止您的任务。

要启动和控制后台任务,Hangfire是一个灵活的库,应该会有所帮助。

编辑添加:既然您已经明确要在 Windows 服务中执行此操作,那么另一个帮助构建和部署服务的重要库是TopShelf

编辑添加:另外,我从您的评论中了解到您正在尝试了解如何从后台任务访问集线器对象?有很多方法可以做到这一点,但为了提高程序的可测试性和可维护性,我建议使用 IoC(控制反转)容器,并注入必要的引用 - 本教程:SignalR 中的依赖注入有使用Ninject库的演练。该演练面向 asp.net 托管,但您找到的链接应该有助于适应 Windows 服务。