2011-10-11 71 views
6

多个Web应用程序之间的通信我有需要每个人的(我可以通过目前使用Silverlight复式完成,但这并不规模非常好)进行通信两个不同的Web应用程序。在阅读了关于SignalR之后,我想尝试一下,但未能找到有关如何执行此操作的大量文档。任何意见,如何开始将不胜感激。使用SignalR

谢谢!

更具体的信息: 实施例: 应用A(招标接口) - 甲网页以允许多个终端用户放置对某些项目的出价。

应用B(管理接口) - 一个网页以允许用户(或可能是多个用户)来监视/控制从出价接口的操作。

所以,当从应用A的用户安置出价在一块,我需要一种方法来提醒出价被放置应用B。然后从应用程序B,如果用户选择接受投标,我需要向应用程序A发送警报(以更新当前价格,提高投标等...)

+0

你可以提供一些关于具体设置的更多细节吗?你如何沟通? – davidfowl

+0

我已经用更具体的信息更新了请求。谢谢你的帮助! – user989953

回答

2

在所有的诚实中,可能会更简单让每个应用程序通过标准服务调用(WCF,ASMX,HTTP处理程序端点,MVC控制器等)将通知推送给对方。 SignalR在浏览器到服务器通信中很有用,因为从服务器到连接的浏览器没有一致的方法。但从Web应用程序到Web应用程序的推送很简单;应用程序A只是调用应用程序B上的服务端点来通知它发生了一些事情。

+0

这可能工作......假设应用程序A和应用程序B总是作为一个单一的实体一起工作......实际上并不是真实世界的行为方式......我可以说这个解决方案引入了大量其他结果令人头疼。另外...为什么紧紧绑定,当你可以松散绑定? – War

0

假设你想要的东西是一样的东西......

用户(浏览器)应用--- A ---应用B ---用户(浏览器)

实时通信可以通过完成执行以下操作...

这不是signalR的工作不过像NServiceBus将适合这个非常好。

您参考总线dll文件和集线器既可以提高和响应事件。 在您的情况下,您将同时使用SignalR和您的服务总线技术来允许跨应用程序同步。

所以这个过程是一样的东西......

  1. 用户在应用程序A火灾了浏览器,并请求页面。
  2. 应用程序A创建内部订阅服务总线事件的Hub实例
  3. 应用程序B中的用户启动浏览器并请求页面。
  4. 应用程序B创建内部订阅服务总线事件的Hub实例
  5. 任一应用程序上的用户都会执行一些操作,导致SignalR接收消息。
  6. SignalR引发总线事件说“此用户做了什么”的服务总线上。
  7. 其他通过订阅事件的应用程序获取事件通知并采取任何行动通知其连接的用户。

在这里学习的经验... 不要试图让技术做一些超出其目的的事情......使用正确的工具来完成这项工作。

在完成核心框架设置后,可以使用略多于约20行的代码完成整个解决方案。

NServiceBus可以在这里找到:

http://particular.net/nservicebus

免责声明:唯一的技术,可能还有其他的解决方案,但这一建议不要以为这是这是可以解决的唯一途径,而以这种方式使用。 我不以任何方式与特定或NServiceBus产品关联。