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