1.0.9 • Published 8 years ago

wma v1.0.9

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

Websocket Messagepack API framework

This is a work in progress.

A Nodejs, MessagePack, Websocket api framework

Install

npm install wma --save

Usage

Follow the comments in the code below.

// Import WMA and messagepack to get started

let wma = require('./../dist/bundle').wma;
let mp = require('msgpack-lite');

// Create a new server and add a handler

var app = new wma({
	port: 8642
});

let pingHandler = function(app, payload, server) {
	// app		:: gives access to the new app 
	// payload	:: Access to payload (if any)
	// server	:: access to the 'ws' instance of the particular connection
	//			   for which this handler is being executed.
	console.log('Handler is executed. Sending back a message.')
	let message = { mess: 'Server running at :: localhost:' + app.port };
	server.send(mp.encode(message));
};

let rcheckerHandler = function(app, payload, server) {
	// Run another handler from one handler
	console.log('Path is : ', this.path);
	app.runHandler('ping', payload, server);
}

app
	.handler({
		path: 'ping',
		handler: pingHandler
	})
	.handler({
		path: 'rhchecker',
		handler: rcheckerHandler
	});

// Implement a client for testing

var WebSocket = require('streamws');
var ws = new WebSocket('ws://127.0.0.1:8642/');

// Define what to do on receiving a message, before anything.

ws.on('message', (data, flags) => {
	console.log("Received a message : ", mp.decode(data));
});

// Execute the ping handler

ws.on('open', () => {
	ws.send(mp.encode({ path: 'rhchecker' }), { binary: true, mask: false });
});

Todo

  • Investigate conversion into UMD using Rollup
  • Create wma.runHandler to run other handlers from inside a handler.
  • Set up handler permissions (Handler X can/can't be executed from Handler Y)
  • Figure a way to provide API key creation/management functionality
1.0.9

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago