1.0.1 • Published 8 years ago

wampi v1.0.1

Weekly downloads
2
License
GPL-3.0
Repository
github
Last release
8 years ago

Web Application Messaging Protocol Implementation

NPM version Dependencies Status Gitter

WAMP lightweight implementation for both browser and server-side (with ws npm package).

wampi extends Emitter interface. It does not create any WebSocket connections but uses existing one.

Installation

npm install wampi

Usage

Add the constructor to the scope:

var Wampi = require('wampi');

Create an instance from some existing WebSocket connection:

var ws    = new WebSocket('ws://echo.websocket.org'),
    wampi = new Wampi(ws);

Send message to execute remotely:

wampi.call('getInfo', {id: 128}, function ( error, result ) {
	// handle execution result
});

Serve remote request:

wampi.addListener('getData', function ( params, callback ) {
	// handle request ...
	// send back results to the sender
	callback(null, requestedData);
});

Send notification with some optional data:

wampi.call('onUserUpdate', newUserData);

Serve received notification:

wampi.addListener('onUserUpdate', function ( event ) {
	// handle notification data ...
});

Catch the moment when WebSocket connection is ready:

wampi.socket.onopen = function() {
	// send or receive messages here
};

Server-side example with ws npm package:

var server = new require('ws').Server({port: 9000}),
	Wampi  = require('wampi');

server.on('connection', function ( connection ) {
	var wampi = new Wampi(connection);

	wampi.call('getInfo', {id: 128}, function ( error, result ) {
    	// handle execution result
    });
});

Error codes

ValueMessageDescription
-32700Parse errorInvalid JSON data was received.
-32600Invalid RequestThe JSON sent is not a valid Request object.
-32601Method not foundThe method does not exist / is not available.

Contribution

If you have any problem or suggestion please open an issue here. Pull requests are welcomed with respect to the JavaScript Code Style.

License

wampi is released under the GPL-3.0 License.

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago