我正在考虑使用 Rx(响应式框架)来异步查询给定关键字的 Twitter 搜索 API。我想要构建的示例应用程序应该能够在控制台中显示新推文。
你觉得有可能吗?它会比使用标准编程技术更简单吗?
你会怎么做?
谢谢! 杰里米
请您参考如下方法:
如何完成的快速模型。请注意,我只完成了一个简单的 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 结合异步 twitter.BeginRequest 方法是一个很好的组合。
