我想知道如何在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上我应该发布我的中心?
答案 0 :(得分:14)
看起来您是订阅者,这意味着您希望在Feed中更新时收到通知。这是过程:
查找中心网址。 Feed中应该有一个<link>
(或<atom:link>
)元素,其中rel =“hub”。 href包含集线器的url。那里有许多不同的中心!
实施回调网址。当新内容可供您使用时,该URL(必须可从外部访问(因此,不是localhost!)将由集线器调用。它还应实现验证机制(见下文)
向集线器执行订阅请求:它是对集线器URL的POST请求(请参阅1.),并带有以下参数:hub.topic = hub.callback = hub.mode = subscribe hub.verify = sync(保持同步,因为它更容易调试)。
集线器将使用hub.verify_token参数向您的回调发送验证请求。然后,您的应用必须回应此参数,以便验证订阅。
如果一切正常,集线器将返回204,你很高兴。如果没有,它将返回4XX,你应该检查身体,因为它包括失败的迹象。
稍后,一旦订阅被确认,您将获得POST请求,其中包含正文中的更新内容。
(您必须每天重新订阅。实际时间取决于枢纽告诉您的内容。)
看起来您使用的是现有库。它应该实现上面的所有步骤。然而,理解发生了什么事情是非常重要的,所以你可能想要自己实现它。这并不复杂。确保您的回调可以从“外部”访问,并检查$s->subscribe($feed);
是否实际上没有返回该标记的结果,因为它会有所帮助。
如果您需要更完整的PubSubHubbub教程,check this one。
祝你好运!答案 1 :(得分:1)
我希望有所帮助!