特定のキーワードで Twitter 検索 API を非同期的にクエリするために、Rx (Reactive Framework) を使用することを考えています。作成したいサンプル アプリは、新しいツイートをコンソールに表示できる必要があります。
それが可能だと思いますか?標準のプログラミング手法を使用するよりも簡単でしょうか?
どうやってそれをしますか?
ありがとう!ジェレミー
特定のキーワードで Twitter 検索 API を非同期的にクエリするために、Rx (Reactive Framework) を使用することを考えています。作成したいサンプル アプリは、新しいツイートをコンソールに表示できる必要があります。
それが可能だと思いますか?標準のプログラミング手法を使用するよりも簡単でしょうか?
どうやってそれをしますか?
ありがとう!ジェレミー
それがどのように行われるかの簡単なモックアップ。ここでは簡単な Web リクエストしか実行していませんが、これは Twitter API と対話するように簡単に拡張できるはずです。
更新:以前のサンプルは、繰り返しのリクエストでうまく機能しませんでした。次の改善されたサンプルではObservable.Interval
、ティックの連続ストリームを生成するために使用し、リクエストの作成とレスポンスのダウンロードを促進します。
Observable
.Interval(TimeSpan.FromSeconds(5))
.Select(ticks => (HttpWebRequest)WebRequest.Create("http://demicode.com"))
.Select(request => Observable.FromAsyncPattern(request.BeginGetResponse,
asyncResult =>
{
using(var response = request.EndGetResponse(asyncResult))
using (var sr = new StreamReader(response.GetResponseStream()))
{
return DateTime.Now.ToString() + sr.ReadToEnd();
}
}))
.SelectMany(getContent => getContent())
.ObserveOnDispatcher()
.Subscribe(content => downloadContent.Text = content);
更新 2: TweetSharpのようなライブラリを使用すると、Twitter の要求を適切に処理できるようです。Observable.FromAsyncPattern
asynctwitter.BeginRequest
メソッドと組み合わせると、素敵な組み合わせになります。