1
我在考慮使用Rx(Reactive Framework)來異步查詢給定關鍵字上的Twitter搜索API。我想要構建的示例應用程序應該能夠在控制檯中顯示新的推文。如何使用Rx異步查詢Twitter搜索?
你認爲這是可能的嗎?它會比使用標準編程技術更簡單嗎?
你會怎麼做?
謝謝! Jeremy
我在考慮使用Rx(Reactive Framework)來異步查詢給定關鍵字上的Twitter搜索API。我想要構建的示例應用程序應該能夠在控制檯中顯示新的推文。如何使用Rx異步查詢Twitter搜索?
你認爲這是可能的嗎?它會比使用標準編程技術更簡單嗎?
你會怎麼做?
謝謝! Jeremy
快速模擬如何完成。請注意,我只做了一個簡單的網絡請求,但這應該很容易擴展到與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
結合異步twitter.BeginRequest
方法做出了很好的組合。
謝謝你的樣品。你認爲每5秒鐘可以獲取新的推文嗎?由於您的示例不使用Twitter,您將如何檢查頁面內容在最近5秒內是否發生了變化並顯示更改? – japf 2010-05-05 14:18:04
@Jalfp:看看我的改進樣本。儘管如此,仍然沒有Twitter整合(如果時間允許,我會研究這一點),但內容下載至少每5秒下載一次。 – 2010-05-05 19:52:14
非常感謝您的努力!我會嘗試將你的樣本用於我的想法。我真的很感激你的幫助:-) – japf 2010-05-05 20:28:28