1.0.1 • Published 8 years ago
wampi v1.0.1
Web Application Messaging Protocol Implementation
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. |
-32601 | Method not found | The 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.