SignalR与Reactive Extensions

时间:2011-12-07 19:58:04

标签: system.reactive signalr reactive-extensions-js

SignalR和Reactive Extensions一样吗?你能解释一下为什么或为什么不解释?

1 个答案:

答案 0 :(得分:89)

不,他们绝对不是一回事。

Reactive Extensions是一个用于创建和编写可观察数据或事件流(实际上非​​常相似)的库。它基本上对客户端 - 服务器连接或其他东西一无所知。它专注于Observable,并且能够将任何集合,流,事件,异步方法等包装到公共Observable接口中。

SignalR是用于在客户端和服务器之间创建持久(即活动)双工连接的工具包。它适用于HTTP,其目的是将3种低级技术:长轮询,服务器端事件和Web套接字包装到高级API中,以实现舒适的开发。所以,它专注于沟通。

因此,组件本身彼此完全独立,并且它们有完全不同的关注点。

另一方面,这两个伟大的库互为补充:一个可以使用SignalR将事件从服务器推送到客户端,然后将服务器端事件包装到RX的Observable中以创建复杂的被动用户经验。

<强>更新

  

Rx就像LINQ一样,它可以帮助你指定“会发生什么”,它没有深入了解“如何”的细节。 SignalR是一个实现实时网络通信“方式”的库--Paul Betts

“LINQ to Objects”和RX之间的区别在于,在“LINQ to Objects”中你从可枚举的东西中提取下一个项目,而在RX中它们是从一个可观察的东西推送给你的。