wampi

1.0.1 • Public • Published

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

Value Message Description
-32700 Parse error Invalid JSON data was received.
-32600 Invalid Request The JSON sent is not a valid Request object.

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.

Readme

Keywords

Package Sidebar

Install

npm i wampi

Weekly Downloads

2

Version

1.0.1

License

GPL-3.0

Last publish

Collaborators

  • mullock