使用SignalR在多个Web应用程序之间进行通

时间:2011-10-11 16:45:28

标签: asp.net vb.net signalr

我有两个不同的Web应用程序需要彼此通信(我目前可以通过使用Silverlight Duplex来完成,但这不能很好地扩展)。在阅读了SignalR之后,我想尝试一下,但没有找到关于如何做到这一点的大量文档。任何有关入门的建议都将不胜感激。

谢谢!

更具体的信息: 例: 应用程序A(出价界面) - 允许多个最终用户对某些项目进行出价的网页。

应用程序B(管理界面) - 允许用户(或可能是多个用户)监控/控制来自Bidding Interface的操作的网页。

因此,当应用程序A的用户对某件作品进行出价时,我需要一种方法来提醒应用程序B已经出价。然后从应用程序B,如果用户选择接受出价,我需要向应用程序A发回警报(更新当前价格,提高出价等)。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

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

这不是signalR的工作,但像NServiceBus这样的东西很适合。

您引用了一个总线DLL文件,并且集线器可以引发和响应事件。 在您的情况下,您可以将SignalR和Service Bus技术协同工作,以允许跨应用程序同步。

所以这个过程就像......

  1. 应用程序A中的用户启动浏览器并请求页面。
  2. 应用程序A创建内部订阅服务总线事件的Hub实例
  3. 应用程序B中的用户启动浏览器并请求页面。
  4. 应用程序B创建内部订阅服务总线事件的Hub实例
  5. 任一应用程序上的用户执行某些操作,导致SignalR接收消息。
  6. SignalR引发总线事件说'#34;这个用户做了一些事情"在服务巴士上。
  7. 通过订阅活动的其他应用程序上的其他中心获得该事件的通知,并采取任何行动通知其连接的用户。
  8. 这里要学习的课程...... 不要试图让技术做出超出其目的的事情......使用正确的工具来完成工作。

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

    NServiceBus可以在这里找到:

    http://particular.net/nservicebus

    免责声明:可能还有其他解决方案,但这一建议并不是假设这是解决这个问题的唯一方法,也是唯一可以这种方式使用的技术。 我不与Any或NServiceBus产品有任何关联。

相关问题