如何在多个项目中使用signalr

时间:2013-11-22 09:53:01

标签: asp.net-mvc-3 asp.net-mvc-4 signalr

我们有一个客户等待系统,客户可以在其中报告并坐下来等待。我们的顾问拥有系统的另一部分,他们可以看到队列并挑选一个客户并打电话给他们。

在我们的解决方案中,我们为客户登录屏幕提供了一个项目。触摸屏项目是mvc,并具有控制器操作以将新票证提升到数据库。

然后我们有另一个项目供我们的顾问屏幕使用。这看起来是同一个数据库,而且是MVC。有一个控制器操作可以从DB获取最新的票据。

我想要做的是使用信号器检查触摸屏创建故障单的时间,然后将其报告给顾问项目中连接的客户端计算机。

我该如何构建?我是否创建了一个名为signalr的新项目,该项目引用了两个项目,或者我是否需要将我的集线器等放在一个或另一个现有项目中?这甚至可以在多个项目中实现吗?

我查看了sql依赖项来跟踪更改,但是我们正在使用EF ORM而我无法连接它。

非常感谢

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

@Dani:这些都是很好的资源。

我相信你所做的是SignalR的一个非常合理的用例。

回答您的第一个问题:您本身并不创建SIgnalR项目。您在现有项目中添加对SignalR的引用。因此,可以在多个项目中使用SignalR。

您创建故障单的项目可能具有完整的SignalR参考,因为它将向当前连接的顾问发起“广播”。但是,Advisors项目只需要参考SignalR.Client,因为它需要的只是连接到SignalR集线器并等待新票证。

答案 2 :(得分:0)

在这里添加我自己的解决方案,因为当前的答案并没有真正回答如何在项目中设置SignalR。

我基本上有一个需要与MVC应用程序交谈的控制台应用程序,所以我对放置集线器的位置感到困惑。控制台不能是集线器,因为它没有MVC项目的JavaScript可以指向的http地址。 MVC项目不能成为集线器,因为它必须由控制台应用程序引用,它将两者紧密地联系在一起。

解决方案是使用第三个web api项目作为中心。 Brad Wilson关于如何执行此操作的示例here。我可以按照here解释我的JavaScript,控制台应用程序可以向那里的控制器发出POST请求,将消息发送到集线器。