Как реализовать PubSubHubbub? - PullRequest
       23

Как реализовать PubSubHubbub?

8 голосов
/ 02 октября 2010

Мне интересно, как реализовать PubSubHubbub на сайте PHP. Я не понимаю этого. Вы можете мне объяснить? Я не понимаю идею. Издатель уведомляет подписчика, а подписчик - мой сайт?

    <?php

// simple example for the PHP pubsubhubbub Subscriber
// as defined at http://code.google.com/p/pubsubhubbub/
// written by Josh Fraser | joshfraser.com | josh@eventvue.com
// Released under Apache License 2.0

include("PuSHSubscriber.php");

$hub_url = "http://pubsubhubbub.appspot.com";
$callback_url = "url to my site?";

$feed = "feed link";

// create a new subscriber
$s = new Subscriber($hub_url, $callback_url);

// subscribe to a feed
$s->subscribe($feed);
// unsubscribe from a feed
//$s->unsubscribe($feed);

?>

Или на $ hub_url я должен опубликовать свой хаб?

Ответы [ 2 ]

14 голосов
/ 03 октября 2010

Похоже, что вы подписчик, что означает, что вы хотите получать уведомления об обновлениях в фиде.Вот процесс:

  1. Найдите адрес концентратора .В фиде должен быть элемент <link> (или <atom:link>) с rel = "hub".Href содержит URL-адрес центра.Существует множество различных хабов!

  2. Реализация URL обратного вызова .Этот URL-адрес (который должен быть доступен извне (т. Е. Не localhost!) Будет вызываться концентратором при появлении нового контента. Он также должен реализовывать механизм проверки (см. Ниже)

  3. Выполните запрос на подписку для хаба : это запрос POST для URL-адреса хаба (см. 1.) со следующими параметрами: hub.topic = hub.callback = hub.mode = подписка хаба.verify = sync (сохраняйте синхронизацию, поскольку ее легче отлаживать).

  4. Концентратор отправит запрос проверки на ваш обратный вызов с параметром hub.verify_token.Ваше приложение должно затем повторить этот параметр для подтверждения подписки.

  5. Если все в порядке, концентратор вернет 204, и вы готовы идти. Если нет, он вернется4XX, и вы должны проверить тело, так как оно содержит признаки того, что не удалось.

  6. Позже, как только подписки будут подтверждены, вы получите POST-запросы с содержимымобновления в теле.

  7. (Вы должны переподписываться каждый день.Фактическое время зависит от того, что говорит вам концентратор.)

Похоже, вы используете существующую библиотеку.Это должно выполнить все шаги сверху.Тем не менее, важно понимать, что происходит под капотом, поэтому вы можете реализовать это самостоятельно.Это не так сложно.Убедитесь, что ваш обратный вызов доступен извне, и убедитесь, что $s->subscribe($feed); на самом деле не возвращает результат приостановки, как это могло бы помочь.

Если вам нужен более полный учебник PubSubHubbub, отметьте это .

Удачи!

1 голос
/ 02 октября 2010
  • $ hub_url - это URL-адрес стороннего хаба
  • $ topic_url - это фид, на который вы подписаны
  • $ callback_url - это URL-адрес вашего сервера, который должен проверяться новыми результатами по мере их получения концентратором.

Надеюсь, это поможет!

...