订阅 RSS 源

7
我正在编写一个非常简单的RSS阅读器 - 它只需要获取xml文档,并在控制台上打印每个项的标题和发布日期。我使用了以下两个问题来开始: 如何开始制作C# RSS阅读器? 阅读Stack Overflow的RSS源 我试图弄清楚如何订阅,据我所知,有两种方法。向提要站点发送HTTP请求,以便在更新时推送给您,或者每隔X秒轮询站点并简单地打印新内容。
我发现很难相信没有订阅的方式,因为任何时刻都有数百万个RSS阅读器运行,受欢迎的RSS网站(如Facebook、Twitter或Myspace)由于所有“已订阅”的RSS阅读器而被击中数亿次/秒,看起来像DOS攻击。
那么,如果确实存在这样的标准,订阅RSS提要的“标准”方式是什么?
3个回答

13

标准的方法是轮询。不是每x秒,而是每x分钟或x小时。

RSS的背后的原理是保持馈送非常简单。小的下载量,同样的文件可以提供给所有订阅者(易于在内存中缓存,没有处理开销来确定何时向每个客户端发送什么内容)。


10

您可能还不太理解 RSS订阅 的概念。

它很简单:

  1. 您的应用程序(RSS阅读器)向给定的RSS订阅 URL 发送一个 HTTP GET 请求。
  2. 您会得到 XML 响应。
  3. 您需要解析该 XML 并在您的 UI 上显示这些数据。

通常,您提到的网站足够聪明,可以识别DOS攻击(例如,同一IP地址在非常短的时间内频繁请求)。所以,您不必担心这个问题。

此外,在创建RSS阅读器时,每当您从订阅URL获取新的XML时,您都需要确定新帖子与旧帖子(已经显示在您的UI上)的差异。时间戳通常用于识别帖子,但是没有标准的方法来做到这一点。


4

网站/服务器上的RSS不管理任何订阅。订阅只是RSS阅读器中的一个概念。这使得RSS服务器端的工作变得简单,因为无需进行订阅管理,这使协议易于采用。

您必须通过HTTP GET定期轮询RSS源的URL。然后,您会获得一个以RSS格式返回的XML文档。接着,您需要解析它并显示您喜欢的信息。就这样。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接