6

我有两个不同的 Web 应用程序需要相互通信(我目前可以通过使用 Silverlight Duplex 来完成,但扩展性不是很好)。在阅读了有关 SignalR 的信息后,我想尝试一下,但找不到太多关于如何执行此操作的文档。任何关于 ho 入门的建议将不胜感激。

谢谢!

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

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

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

4

2 回答 2

3

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

于 2011-10-14T17:54:20.220 回答
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

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

于 2014-09-12T08:17:03.853 回答