PuSH 0.4: No outgoing 'sync' verifications. Feed renewal script. No auto-renewal.

Among other things (such as permanent subscriptions), Pubsubhubbub 0.4
removed the "sync" verification method. This means that any incoming
PuSH subscription requests that follow the 0.4 spec won't really
_require_that we handle it as a background process, but if we were to
try direct verification of the subscription - and fail - there's no way
we could  pick up the ball again. So _essentially_ we require background
processing with retries.

This means we must implement something like the "poorman cron" or
similar, so background processing can be handled
on-demand/on-site-visit. This is how Friendica, Drupal etc. handles it
and is necessary for environments where we can't run separate queue
daemons.

When the poorman-cron-ish thing is implemented, auto-renewal will work
for all users.

PuSH 0.4 spec:
    https://pubsubhubbub.googlecode.com/git/pubsubhubbub-core-0.4.html
More on PuSH 0.4 release (incl. breaking changes):
    https://groups.google.com/forum/#!msg/pubsubhubbub/7RPlYMds4RI/2mIHQTdV3aoJ
This commit is contained in:
Mikael Nordfeldth
2013-11-02 20:02:28 +01:00
parent 2cecfe8f82
commit ab4113168f
5 changed files with 86 additions and 50 deletions

View File

@@ -114,7 +114,7 @@ class HubSub extends Managed_DataObject
}
$data = array('sub' => clone($this),
'mode' => $mode,
'token' => $token,
'token' => $token, // let's put it in there if remote uses PuSH <0.4
'retries' => $retries);
$qm = QueueManager::get();
$qm->enqueue($data, 'hubconf');
@@ -139,8 +139,8 @@ class HubSub extends Managed_DataObject
if ($mode == 'subscribe') {
$params['hub.lease_seconds'] = $this->lease;
}
if ($token !== null) {
$params['hub.verify_token'] = $token;
if ($token !== null) { // TODO: deprecated in PuSH 0.4
$params['hub.verify_token'] = $token; // let's put it in there if remote uses PuSH <0.4
}
// Any existing query string parameters must be preserved