0.3.1 • Published 6 years ago

mumba-wamp v0.3.1

Weekly downloads
94
License
Apache-2.0
Repository
gitlab
Last release
6 years ago

Mumba WAMP

Client and utilities for connecting to a Web Application Messaging Protocol (WAMP) service.

Installation

$ npm install --save mumba-wamp

Configuration

See Autobahn connection options.

Examples

const autobahn = require('autobahn');
import {WampClient} from `mumba-wamp`;

let options = {
	url: 'ws://localhost:8080',
	realm: 'test-realm',
	authid: '*admin',
	authmethods: ['wampcra'],
	onchallenge: (session: any, method: string, extra: any) => autobahn.auth_cra.sign('*password', extra.challenge)
};

// The main test instance.
let instance = new WampClient(options);

instance.onError.subscribe(console.error);

instance.onOpen.subscribe((session: any) => {
	console.log('Connection opened:', session);
	
	instance.closeConnection();
});

instance.onClose((details: any) => {
	console.log('Connection closed:', details);
});

instance.onSubscribe.subscribe(
	(resp: any) => console.log('Subscribed:', resp.topic, resp.id)
);

instance.onRegister.subscribe(
	(result: any) => console.log('Registered:', result.procedure, result.id)
);

instance.openConnection();

Alternate initialisation path if an instance of the WampClient is needed before the connection options are known. For example a login page in a website that needs the user to enter their credentials before opening a socket connection.

import {WampClient} from 'mumba-wamp';

...

const instance = new WampClient();

instance.setOptions(options)
	.openConnection();
...

Caching.

import {WampClient} from 'mumba-wamp';
import {MemoryCache} from 'mumba-cache';

const cache = new MemoryCache({ limit: 100 });
const options = {
  url: 'ws://localhost:8080',
  realm: 'test-realm',
  authid: '*admin',
  authmethods: ['wampcra'],
  onchallenge: (session: any, method: string, extra: any) => autobahn.auth_cra.sign('*password', extra.challenge),
  
  // enable caching
  caching: {
  	enabled: true,
  	
  	// optionally whitelist the proc's to cache
  	includes: []
  }
};

const instance = new WampClient(options);

instance
  .setCache(cache)
  .openConnection();
...

API

WampSession.get

({ authid: '*admin',
  authrole: 'backend',
  authmethod: 'wampcra',
  authprovider: 'static',
  realm: 'test-realm',
  session: 1093244371,
  transport: 
   { type: 'websocket',
     protocol: 'wamp.2.json',
     peer: 'tcp4:127.0.0.1:50979',
     http_headers_received: 
      { connection: 'Upgrade',
        upgrade: 'websocket',
        host: '127.0.0.1:8080',
        'sec-websocket-version': '13',
        'sec-websocket-key': 'MTMtMTQ1MjMxODAyNzA2Mw==',
        'sec-websocket-protocol': 'wamp.2.json',
        'sec-websocket-extensions': 'permessage-deflate; client_max_window_bits' },
     http_headers_sent: {} } })

Tests

To run the test suite, first install the dependencies, then run npm test:

$ npm install
$ npm run docker:up
$ npm test
$ npm run docker:down

References

People

The original author of Mumba WAMP is Andrew Eddie.

List of all contributors

License

Apache 2.0


© 2016 Mumba Pty Ltd. All rights reserved.

0.3.1

6 years ago

0.3.0

6 years ago

0.2.12

6 years ago

0.2.11

6 years ago

0.2.10

6 years ago

0.2.9

6 years ago

0.2.8

7 years ago

0.2.7

7 years ago

0.2.6

7 years ago

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago