node-upnp-subscription

1.0.6 • Public • Published

Node UPNP Subscription Library

Library to manage subscriptions, renewals and unsubscription of UPNP subscriptions.

Events are currently handled via a provided callback which will be passed all the data from the event as a Javascript object. XML is automatically parsed into a javascript object.

Installation

npm install node-upnp-subscription

Example

var Subscription = require('node-upnp-subscription');
 
var host = '192.168.1.122';
var port = 55178;
var infoSubUri = '/Ds/Info/event';
 
var infoSub = new Subscription(host, port, infoSubUri);
infoSub.on('message', console.log);
 
setTimeout(infoSub.unsubscribe, 12000);

Usage

Construction

On construction, a local HTTP server will begin to listen on a random port and a subscribe request will be made to the Upnp device advertising this address and a resubscribe timer is set. The timeout value is replaced with the value returned in the subcription response which may differ to your requested resubscribe timeout. A resubscription timer is set to resubscribe after a successful subscription attempt. When a response is received, the subscription Id sid is returned in an event.

The resubscribe timer will cause a subscribe attempt to be resent to keep the Upnp subscription alive. If this is successful, a timer is set to resubscribe.

Unsubscribe

On unsubscribe, the resubscribe timer will be cancelled and the listening HTTP server closed. An unsubscribe request will be made to the Upnp device, if this fails an event is emitted with the reason.

Events

Initialisation

  • subscribed - Will return the sid
  • error - Will return the error object which occured during subscribe attempt.

Resubscribe

  • resubscribed - Will return the sid
  • error:resubscribe - Will return both the sid of the subscription and the HTTP error object.

Unsubscribe

  • unsubscribed - Will return the now defunct sid
  • error:unsubscribe - Will return the HTTP error object.

Readme

Keywords

Package Sidebar

Install

npm i node-upnp-subscription

Weekly Downloads

19

Version

1.0.6

License

MIT

Last publish

Collaborators

  • bazwilliams