2011-02-25 19 views
6

Estoy escribiendo un lector de RSS muy simple: todo lo que necesita hacer es obtener el documento xml e imprimir en la consola el título y la fecha de publicación de cada elemento. Me empecé a usar estas dos preguntas:Suscríbase a una fuente RSS

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

Reading the Stack Overflow RSS feed

Estoy tratando de encontrar la manera de suscribirse, y por lo que yo puedo entender que lo haga una de dos maneras. Envíe una solicitud HTTP al sitio de feed para que le envíe las actualizaciones tal como vienen, o consulte el sitio cada X segundos y simplemente imprima las nuevas.

Me resulta difícil creer que no hay forma de suscribirse debido a los millones de lectores RSS que se ejecutan en un momento dado, los sitios populares de RSS como Facebook, Twitter o MySpace serían golpeados cientos de millones de veces por segundo debido a todos los lectores RSS "suscritos" a él y se ven como un ataque DOS.

Entonces, ¿cuál es la forma "estándar" de suscribirse a una fuente RSS, si tal estándar realmente existe?

Respuesta

12

La manera estándar es sondear. No cada x segundos, sino cada x minutos o x horas.

El razonamiento detrás de RSS es mantener la alimentación extremadamente simple. Se puede enviar una pequeña descarga y el mismo archivo a todos los suscriptores (es fácil almacenar en la memoria caché y sin gastos generales de procesamiento para saber exactamente qué y cuándo enviar a cada cliente).

8

No estoy seguro de que comprenda el concepto de RSS feeds.

Es simple:

  1. aplicación usted (lector de RSS) envía una solicitud a HTTP GET URL RSS feed dado.
  2. Obtiene XML a cambio.
  3. Analizas ese XML y muestra esa información en tu UI.

Y en general, los sitios web que ha mencionado son lo suficientemente inteligentes como para identificar los ataques de DOS (por ejemplo, solicitudes frecuentes de la misma IP en muy poco tiempo). Entonces, no tienes que preocuparte por eso.

Además, al crear un lector RSS, cada vez que obtenga XML desde la url de feed, debe identificar las publicaciones nuevas de las anteriores (que ya tiene en su UI). Las marcas de tiempo generalmente se utilizan para identificar publicaciones, pero no existe una forma estándar de hacerlo.

4

RSS en un sitio/servidor no administra ninguna suscripciones. La suscripción es solo un concepto en el lector de RSS. Eso mantiene las cosas simples en el lado del servidor RSS, ya que no hay necesidad de gestión de suscripciones lo que hace que el protocolo sea fácil de adoptar.

Tiene que sondear periódicamente la fuente RSS por un HTTP GET a la URL de la fuente. Obtiene un documento XML en formato RSS a cambio. Luego lo analiza y muestra las informaciones que le gustan. Voila.

Cuestiones relacionadas