Подписаться на RSS канал - PullRequest
       35

Подписаться на RSS канал

6 голосов
/ 25 февраля 2011

Я пишу очень простую программу для чтения RSS - все, что нужно сделать, - это получить документ XML и распечатать на консоли заголовок и дату публикации каждого элемента.Я начал использовать эти два вопроса:

Как мне начать создавать C # RSS Reader?

Чтение RSS-канала Stack Overflow

Я пытаюсь выяснить, как подписаться, и, насколько я могу судить, вы делаете это одним из двух способов.Отправьте HTTP-запрос на сайт канала, чтобы он отправлял вам обновления по мере их поступления, или опрашивайте сайт каждые X секунд и просто печатайте новые.

Мне трудно поверить, что нет возможности подписаться из-за миллионов читателей RSS, работающих в любой момент, популярные сайты RSS, такие как Facebook, Twitter или MySpace, будут поражены сотни миллионов раз.в секунду из-за того, что все читатели RSS «подписались» на него и выглядят как DOS-атака.

Итак, каков «стандартный» способ подписки на RSS-канал, если такой стандарт действительно существует?

Ответы [ 3 ]

12 голосов
/ 25 февраля 2011

Стандартный способ - опрос. Не каждые x секунд, а каждые x минут или x часов.

Логическое обоснование RSS заключается в том, чтобы сделать канал чрезвычайно простым. Небольшая загрузка и один и тот же файл могут быть предоставлены всем подписчикам (легко кэшируются в памяти и не требуют дополнительной обработки, чтобы точно определить, что и когда отправлять каждому клиенту).

8 голосов
/ 25 февраля 2011

Не уверен, что вы полностью понимаете концепцию RSS-каналов .

Это просто:

  1. Ваше приложение (программа чтения RSS) отправляет HTTP GETзапрос к данному RSS-каналу URL
  2. Вы получаете XML взамен.
  3. Вы анализируете это XML и показываете эти данные на ваших UI.

И вообще, на сайтахВы упомянули, что достаточно умны, чтобы идентифицировать атаки DOS (например, частые запросы с одного и того же IP за очень короткое время).Таким образом, вам не нужно беспокоиться об этом.

Кроме того, при создании программы чтения RSS каждый раз, когда вы получаете новый XML из URL-адреса канала, вы должны идентифицировать новые сообщения из старых (которые выуже есть на вашем интерфейсе).Временные метки обычно используются для идентификации сообщений, но стандартного способа сделать это не существует.

4 голосов
/ 25 февраля 2011

RSS на сайте / сервере не управляет какими-либо подозрениями.Подпись является лишь концепцией в RSS-ридере.Это упрощает работу на стороне RSS-сервера, так как нет необходимости в управлении подозрениями, что облегчало принятие протокола.

Вам необходимо периодически опрашивать RSS-канал с помощью HTTP GET для URL-адреса канала.Вы получаете XML-документ в формате RSS взамен.Затем вы анализируете его и отображаете информацию, которая вам нравится.Вуаля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...