1.0.9 • Published 10 years ago

wma v1.0.9

Weekly downloads
2
License
MIT
Repository
github
Last release
10 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

10 years ago

1.0.8

10 years ago

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago

1.0.4

10 years ago

1.0.3

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago