如何实现PubSubHubbub?

ran*_*dev 8 php websub

我想知道如何实现使用PubSubHubbub在PHP site.I it.Can你解释我不明白?我不明白.发布者通知订阅者和订阅者 - 我的网站?

    <?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);

?>
Run Code Online (Sandbox Code Playgroud)

或者在$ hub_url上我应该发布我的中心?

Jul*_*oux 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. (您必须每天重新订阅.实际时间取决于枢纽告诉您的内容.)

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

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

祝好运!