Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including node-upnp-subscription with all npm packages installed. Try it out:

var nodeUpnpSubscription = require("node-upnp-subscription")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

node-upnp-subscription v1.0.6

Upnp subscription library for Node, handling subscription, renewal and expiry.

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.


npm install node-upnp-subscription


var Subscription = require('node-upnp-subscription');

var host = '';
var port = 55178;
var infoSubUri = '/Ds/Info/event';

var infoSub = new Subscription(host, port, infoSubUri);
infoSub.on('message', console.log);

setTimeout(infoSub.unsubscribe, 12000);



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.


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.



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


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


  • unsubscribed - Will return the now defunct sid
  • error:unsubscribe - Will return the HTTP error object.
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free