8

我想知道如何在 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 我应该发布我的集线器?

4

2 回答 2

14

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

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

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

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

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

  5. 如果一切正常,集线器将返回 204,您就可以开始了。如果不是,它将返回 4XX,您应该检查正文,因为它包含失败的指示。

  6. 稍后,一旦订阅被确认,您将收到带有更新内容的 POST 请求。

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

看起来您使用的是现有库。它应该执行上面的所有步骤。然而,了解幕后发生的事情很重要,因此您可能希望自己实现它。没那么复杂。确保您的回调可以从“外部”访问,并检查它 $s->subscribe($feed);实际上不会返回订阅的结果,因为它会有所帮助。

如果您需要更完整的 PubSubHubbub 教程,请查看此

祝你好运!

于 2010-10-02T20:19:11.703 回答
0
  • $hub_url是 3rd 方集线器的 url
  • $topic_url是您订阅的“提要”
  • $callback_url是您的服务器上的 url,当集线器获取它们时,应该用新结果 ping。

我希望这会有所帮助!

于 2010-10-02T19:13:24.590 回答