2011-04-09 60 views
5

爲了熟悉RX,我正在尋找RX在「真實世界」項目中使用的示例。在「真實世界」中使用反應式擴展

我對.NET版本或JavaScript版本都感興趣。 對閉源項目的引用會很有趣。開源項目會更有趣。

爲什麼RX對這些項目來說是個不錯的選擇,這也很有趣。

我不是在尋找教程或介紹。

+0

我在我的博客系列文章中回答了這個問題:http://rehansaeed.co.uk/reactive-extensions-part1-replacing-events/ – 2014-09-24 12:52:57

回答

12

在不到一個小時,我能夠的Rx支持添加到MassTransit,一個開源ESB:

https://github.com/MassTransit/MassTransit/tree/master/src/MassTransit.Reactive

更新:至於爲什麼它是一個不錯的選擇,他們已經有一個訂閱/取消訂閱機制。添加Rx支持意味着現在可以輕鬆地將這些訂閱組合在一起。例如,您可能有兩種消息共享一些CorrelationId。其中Rx你可以平凡Join()發佈的消息通過該標識符:

var someMessages = bus.AsObservable<SomeMessage>(); 
var otherMessages = bus.AsObservable<AnotherMessage>(); 

var joined = from s in someMessages 
      join o in otherMessages 
       on s.CorrelationId equals o.CorrelationId 
      select new { s.Something, o.OtherThing }; 

joined.Subscribe(x => Console.WriteLine(x)); 

另外:退房https://github.com/reactiveui/ReactiveUI爲RX-供電MVVM框架目標XAML(WPF,Silverlight中,WP),iOS和Android。非常非常酷的東西。

+0

對不起復活了一個老問題,但我一直最近正在使用你的Reactive擴展到MT--對於如何使用單元測試調度程序「玩得很好」的想法,比如HistoricalScheduler? (非常乾淨的實現,順便說一句!) – JerKimball 2013-11-19 23:45:39

+0

我不能把目前的狀態大部分功勞。 :)我建議在MassTransit上打開一個問題來詢問這件事(請標記@dahlbyk)。 – dahlbyk 2013-11-22 14:57:25

1

這裏有兩個閉源/商業實例:

  1. 銀行使用的Rx適配器在其消息總線的基礎設施。

  2. 網絡流媒體產品Nirvana的製造商將在其產品的next release中提供基於API的API。