2011-02-25 9 views
6

私は非常に単純なRSSリーダーを作成しています。必要なのはXML文書を取得し、コンソールにタイトルを印刷して各アイテムの日付を公開することだけです。私が購読する方法を把握しようとしているRSSフィードの購読

How can I get started making a C# RSS Reader?

Reading the Stack Overflow RSS feed

、そして限り、私は理解することができますよう、あなたはそれを2つの方法のいずれかを実行します。私は、これら二つの質問を使用して始まりました。フィードサイトにHTTPリクエストを送信して、アップデートを送信したり、X秒ごとにサイトをポーリングしたり、単純に新しいものを印刷したりします。

Facebookの、twitter、またはmyspaceのような人気のあるRSSサイトが毎秒数億回のヒットを記録するため、何時でもRSSリーダーを利用しているため、購読する方法がないとは思えません。すべてのRSSリーダーが "subscribed"してDOS攻撃のように見えるからです。

このような標準が本当に存在する場合、RSSフィードを購読するための「標準的な」方法は何ですか?

答えて

12

標準的な方法はポーリングです。 x秒ごとではなく、x分ごとまたはx時間ごと。

RSSの背後にある理由は、フィードを非常に簡単に保つことです。小規模なダウンロードと同じファイルをすべての加入者に提供できます(メモリに簡単にキャッシュすることができ、処理のオーバーヘッドがなく、各クライアントに何時に送信するかを正確に見つけることができます)。

8

のコンセプトをよく理解していないと思われます。

それは簡単です:

  1. あなたのアプリケーション(RSSリーダー)指定されたRSSフィードのURLにHTTP GET要求を送信します。
  2. あなたはXMLを受け取ります。
  3. XMLを解析し、そのデータをUIに表示します。

一般に、あなたが言及したウェブサイトは、DOS攻撃(例えば、同じIPからの頻繁なリクエストなど)を識別するのに十分スマートです。だから、あなたはそれについて心配する必要はありません。

また、RSSリーダーを作成する際に、フィードURLから新しいを取得するたびに、古いもの(UIに既にあるもの)の新しい投稿を特定する必要があります。投稿を識別するためにタイムスタンプが一般的に使用されますが、標準的な方法はありません。

4

サイト/サーバー上のRSSは、サスペンスを管理していません。サスペンスはRSSリーダーのコンセプトに過ぎません。これは、プロトコルを簡単に採用できるようにする執行管理の必要がないため、RSSサーバー側での作業を単純にします。

フィードURLにHTTP GETでRSSフィードを定期的にポーリングする必要があります。あなたはRSS形式のXML文書を受け取ります。次に、それを解析し、好きな情報を表示します。 Voila。

関連する問題