@4xx22/pubsubhubbub 中文文档教程

发布于 3年前 浏览 32 项目主页 更新于 3年前

PubSubHubbub subscriber

PubSubHubbub 订阅者模块。 支持 0.3 和 0.4 集线器。

NB 不要从 v0.1.x 升级 - API 完全不同

Install

使用 npm 安装

npm install pubsubhubbub

Usage

创建一个 pubsubhubbub 服务器对象

var pubSubHubbub = require('pubsubhubbub');
var pubSubSubscriber = pubSubHubbub.createServer(options);

其中选项包括以下属性

  • callbackUrl Callback URL for the hub
  • headers (optional) Custom headers to use for all HTTP requests
  • secret (optional) Secret value for HMAC signatures
  • leaseSeconds (optional) Number of seconds for which the subscriber would like to have the subscription active
  • maxContentSize (optional) Maximum allowed size of the POST messages
  • username (optional) Username for HTTP Authentication
  • password (optional) Password for HTTP Authentication
  • sendImmediately (optional) Send Username & Password Immediately. Defaults to false.

HTTP server mode

启动一个 HTTP 服务器来监听传入的 PubSubHubbub 请求

// listen on port 1337
pubSubSubscriber.listen(1337);

Express middleware mode

如果你想启动一个专用的 HTTP 服务器,你可以使用 PubSubHubbub 订阅者作为 Express 中间件。

使用 listener 方法将 PubSubHubbub 对象附加到 Express 服务器。

// use the same path as defined in callbackUrl
app.use("/pubsubhubbub", pubSubSubscriber.listener());

Events

  • 'listen' - HTTP server has been set up and is listening for incoming connections
  • 'error' (err) - An error has occurred
  • 'subscribe' (data) - Subscription for a feed has been updated
  • 'unsubscribe' (data) - Subscription for a feed has been cancelled
  • 'denied' (data) - Subscription has been denied
  • 'feed' (data) - Incoming notification

API

Listen

开始监听所选端口

pubSubSubscriber.listen(port)

Where

  • port is the HTTP port to listen

Subscribe

订阅提要

pubSubSubscriber.subscribe(topic, hub, callback)

使用Where

  • topic is the URL of the RSS/ATOM feed to subscribe to
  • hub is the hub for the feed
  • callback (optional) is the callback function with an error object if the subscription failed

示例:

var pubSubSubscriber = pubSubHubbub.createServer(options);
var topic = "http://testetstetss.blogspot.com/feeds/posts/default";
var hub = "http://pubsubhubbub.appspot.com/";

pubSubSubscriber.on("subscribe", function(data){
    console.log(data.topic + " subscribed");
});

pubSubSubscriber.listen(port);

pubsub.on("listen", function(){
    pubSubSubscriber.subscribe(topic, hub, function(err){
        if(err){
            console.log("Failed subscribing");
        }
    });
});

Unsubscribe

取消订阅提要

pubSubSubscriber.unsubscribe(topic, hub, callback)

使用Where

  • topic is the URL of the RSS/ATOM feed to unsubscribe from
  • hub is the hub for the feed
  • callback (optional) is the callback function with an error object if the unsubscribing failed

示例:

var pubSubSubscriber = pubSubHubbub.createServer(options),
    topic = "http://testetstetss.blogspot.com/feeds/posts/default",
    hub = "http://pubsubhubbub.appspot.com/";

pubSubSubscriber.on("unsubscribe", function(data){
    console.log(data.topic + " unsubscribed");
});

pubSubSubscriber.listen(port);

pubSubSubscriber.on("listen", function(){
    pubSubSubscriber.unsubscribe(topic, hub, function(err){
        if(err){
            console.log("Failed unsubscribing");
        }
    });
});

Notifications

可以使用 'feed' 事件检查更新通知。 数据对象具有以下结构:

  • topic - Topic URL
  • hub - Hub URL, might be undefined
  • callback - Callback URL that was used by the Hub
  • feed - Feed XML as a Buffer object
  • headers - Request headers object

License

MIT

PubSubHubbub subscriber

PubSubHubbub subscriber module. Supports both 0.3 and 0.4 hubs.

NB Do not upgrade from v0.1.x - the API is totally different

Install

Install with npm

npm install pubsubhubbub

Usage

Create a pubsubhubbub server object

var pubSubHubbub = require('pubsubhubbub');
var pubSubSubscriber = pubSubHubbub.createServer(options);

Where options includes the following properties

  • callbackUrl Callback URL for the hub
  • headers (optional) Custom headers to use for all HTTP requests
  • secret (optional) Secret value for HMAC signatures
  • leaseSeconds (optional) Number of seconds for which the subscriber would like to have the subscription active
  • maxContentSize (optional) Maximum allowed size of the POST messages
  • username (optional) Username for HTTP Authentication
  • password (optional) Password for HTTP Authentication
  • sendImmediately (optional) Send Username & Password Immediately. Defaults to false.

HTTP server mode

Start a HTTP server to listen incoming PubSubHubbub requests

// listen on port 1337
pubSubSubscriber.listen(1337);

Express middleware mode

If you dot want to spin up a dedicated HTTP server, you can use the PubSubHubbub subscriber as an Express middleware.

Attach PubSubHubbub object to an Express server using listener method.

// use the same path as defined in callbackUrl
app.use("/pubsubhubbub", pubSubSubscriber.listener());

Events

  • 'listen' - HTTP server has been set up and is listening for incoming connections
  • 'error' (err) - An error has occurred
  • 'subscribe' (data) - Subscription for a feed has been updated
  • 'unsubscribe' (data) - Subscription for a feed has been cancelled
  • 'denied' (data) - Subscription has been denied
  • 'feed' (data) - Incoming notification

API

Listen

Start listening on selected port

pubSubSubscriber.listen(port)

Where

  • port is the HTTP port to listen

Subscribe

Subscribe to a feed with

pubSubSubscriber.subscribe(topic, hub, callback)

Where

  • topic is the URL of the RSS/ATOM feed to subscribe to
  • hub is the hub for the feed
  • callback (optional) is the callback function with an error object if the subscription failed

Example:

var pubSubSubscriber = pubSubHubbub.createServer(options);
var topic = "http://testetstetss.blogspot.com/feeds/posts/default";
var hub = "http://pubsubhubbub.appspot.com/";

pubSubSubscriber.on("subscribe", function(data){
    console.log(data.topic + " subscribed");
});

pubSubSubscriber.listen(port);

pubsub.on("listen", function(){
    pubSubSubscriber.subscribe(topic, hub, function(err){
        if(err){
            console.log("Failed subscribing");
        }
    });
});

Unsubscribe

Unsubscribe from a feed with

pubSubSubscriber.unsubscribe(topic, hub, callback)

Where

  • topic is the URL of the RSS/ATOM feed to unsubscribe from
  • hub is the hub for the feed
  • callback (optional) is the callback function with an error object if the unsubscribing failed

Example:

var pubSubSubscriber = pubSubHubbub.createServer(options),
    topic = "http://testetstetss.blogspot.com/feeds/posts/default",
    hub = "http://pubsubhubbub.appspot.com/";

pubSubSubscriber.on("unsubscribe", function(data){
    console.log(data.topic + " unsubscribed");
});

pubSubSubscriber.listen(port);

pubSubSubscriber.on("listen", function(){
    pubSubSubscriber.unsubscribe(topic, hub, function(err){
        if(err){
            console.log("Failed unsubscribing");
        }
    });
});

Notifications

Update notifications can be checked with the 'feed' event. The data object is with the following structure:

  • topic - Topic URL
  • hub - Hub URL, might be undefined
  • callback - Callback URL that was used by the Hub
  • feed - Feed XML as a Buffer object
  • headers - Request headers object

License

MIT

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文