New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@patrickkfkan/peer-ssdp

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@patrickkfkan/peer-ssdp

Nodejs implementation of the Simple Service Discovery Protocol

0.1.0
latest
Source
npm
Version published
Maintainers
1
Created
Source

Forked from https://github.com/fraunhoferfokus/peer-ssdp with the following changes:

v0.1.0:

  • Add bindToInterfaces and bindToAddresses options.
  • Based on upstream v0.0.5.

Everything else is the original author's work.

peer-ssdp

peer-ssdp is a simple Node.js module implementing the Simple Service Discovery Protocol SSDP as described in the UPnP Device Architecture specification, Section 1

Setup

  • use npm install peer-ssdp to install the module.
  • run example with node node_modules/peer-ssdp/test/ssdp-test.js

Usage

Peer is an EventEmitter so you can use the common EventEmitter API to subscribe to specific events.

var ssdp = require("peer-ssdp");
var peer = ssdp.createPeer();
var interval;
/**
 * handle peer ready event. This event will be emitted after `peer.start()` is called.
 */
peer.on("ready",function(){
	// handle ready event
	// send ssdp:alive messages every 1s
	// {{networkInterfaceAddress}} will be replaced before
	// sending the SSDP message with the actual IP Address of the corresponding
	// Network interface. This is helpful for example in UPnP for LOCATION value
	interval = setInterval(function(){
		peer.alive({
			ST: "upnp:rootdevice",
			SERVER: "...",
			ST: headers.ST,
			USN: "...",
			LOCATION: "http://{{networkInterfaceAddress}}/device-desc.xml",
		});
	}, 1000);
	// shutdown peer after 10 s and send a ssdp:byebye message before
	setTimeout(function(){
		clearInterval(interval);
		// Close peer. Afer peer is closed the `close` event will be emitted.
		peer.close();
	}, 10000);
});

// handle SSDP NOTIFY messages. 
// param headers is JSON object containing the headers of the SSDP NOTIFY message as key-value-pair. 
// param address is the socket address of the sender
peer.on("notify",function(headers, address){
	// handle notify event
});

// handle SSDP M-SEARCH messages. 
// param headers is JSON object containing the headers of the SSDP M-SEARCH message as key-value-pair. 
// param address is the socket address of the sender
peer.on("search",function(headers, address){
	// handle search request
	// reply to search request
	// Also here the {{networkInterfaceAddress}} will be replaced before
  // sending the SSDP message with the actual IP Address of the corresponding
  // Network interface.
	peer.reply({
		ST: "upnp:rootdevice",
		SERVER: "...",
		ST: headers.ST,
		USN: "...",
		LOCATION: "http://{{networkInterfaceAddress}}/device-desc.xml",
	},address);
});

// handle SSDP HTTP 200 OK messages. 
// param headers is JSON object containing the headers of the SSDP HTTP 200 OK  message as key-value-pair. 
// param address is the socket address of the sender
peer.on("found",function(headers, address){
	// handle found event
});

// handle peer close event. This event will be emitted after `peer.close()` is called.
peer.on("close",function(){
	// handle close event
});

// Start peer. Afer peer is ready the `ready` event will be emitted.
peer.start();

License

GNU Lesser General Public License v3.0, for more details please refer to the LICENSE file.

Contact us at famecontact@fokus.fraunhofer.de

Copyright (c) 2017 Fraunhofer FOKUS

Keywords

ssdp

FAQs

Package last updated on 04 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts