0.0.3 • Published 8 years ago

liftstream v0.0.3

Weekly downloads
2
License
Unlicense
Repository
github
Last release
8 years ago

Liftstream

Turns the Deutsche Bahn ADAM API into an Event Emitter or a Server for Server Sent Events and Websocket Stream.

Install

Simply npm install liftstream.

Usage as Library

Liftstream emits an event every time the state of a lift changes.

var liftstream = require("liftstream");

var stream = new liftstream({
	statefile: "/tmp/statefile.json", // save elevator states here
	interval: "5m",                   // adam api polling interval
	dev: false                        // send fake events for testing
});

stream.on("data", function(data){
	console.log("Lift Number "+data.equipmentnumber+" is now "+data.state);
});

stream.on("error", console.error);

Usage as Server

Liftstream may run as an HTTP service and provide all events as Server Sent Events and Websocket Messages.

First create your own config.js from config.js.dist. Then you can start the server with node server.js or npm start. Please be reasonable with the interval value.

The Interfaces are http://localhost:3000/stream.sse for Server Sent Events and ws://localhost:3000/stream.ws for the Websocket.

Every message consists of a single JSON encoded object.

Since the data changes very little, there is a developer mode, which returns a fake event on every update without other changes. It's activated by setting config.dev to true in config.js.

You can test your Server with wscat --connect wss://server:port/stream.ws from the ws module.

License

Unlicense