如何实现PubSubHubbub?

时间:2010-10-02 18:36:10

标签: php pubsubhubbub

我想知道如何在PHP网站中实现PubSubHubbub。我不明白。你能解释一下吗? 我不明白。 发布者通知订阅者和订阅者 - 我的网站?

    <?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 个答案:

答案 0 :(得分:14)

看起来您是订阅者,这意味着您希望在Feed中更新时收到通知。这是过程:

  1. 查找中心网址。 Feed中应该有一个<link>(或<atom:link>)元素,其中rel =“hub”。 href包含集线器的url。那里有许多不同的中心!

  2. 实施回调网址。当新内容可供您使用时,该URL(必须可从外部访问(因此,不是localhost!)将由集线器调用。它还应实现验证机制(见下文)

  3. 向集线器执行订阅请求:它是对集线器URL的POST请求(请参阅1.),并带有以下参数:hub.topic = hub.callback = hub.mode = subscribe hub.verify = sync(保持同步,因为它更容易调试)。

  4. 集线器将使用hub.verify_token参数向您的回调发送验证请求。然后,您的应用必须回应此参数,以便验证订阅。

  5. 如果一切正常,集线器将返回204,你很高兴。如果没有,它将返回4XX,你应该检查身体,因为它包括失败的迹象。

  6. 稍后,一旦订阅被确认,您将获得POST请求,其中包含正文中的更新内容。

  7. (您必须每天重新订阅。实际时间取决于枢纽告诉您的内容。)

  8. 看起来您使用的是现有库。它应该实现上面的所有步骤。然而,理解发生了什么事情是非常重要的,所以你可能想要自己实现它。这并不复杂。确保您的回调可以从“外部”访问,并检查$s->subscribe($feed);是否实际上没有返回该标记的结果,因为它会有所帮助。

    如果您需要更完整的PubSubHubbub教程,check this one

    祝你好运!

答案 1 :(得分:1)

  • $ hub_url 是第三方中心的网址
  • $ topic_url 是您订阅的“Feed”
  • $ callback_url 是您的服务器上的网址,应该在集线器获取新结果时使用新网址。

我希望有所帮助!