mumba-wamp
Client and utilities for connecting to a Web Application Messaging Protocol (WAMP - see http://wamp-proto.org) service.
Last updated a year ago by eddieajau .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install mumba-wamp 
SYNC missed versions from official npm registry.

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.

Current Tags

  • 0.3.1                                ...           latest (a year ago)

18 Versions

  • 0.3.1                                ...           a year ago
  • 0.3.0                                ...           a year ago
  • 0.2.12                                ...           2 years ago
  • 0.2.11                                ...           2 years ago
  • 0.2.10                                ...           2 years ago
  • 0.2.9                                ...           2 years ago
  • 0.2.8                                ...           2 years ago
  • 0.2.7                                ...           2 years ago
  • 0.2.6                                ...           2 years ago
  • 0.2.5                                ...           2 years ago
  • 0.2.4                                ...           2 years ago
  • 0.2.3                                ...           2 years ago
  • 0.2.2                                ...           3 years ago
  • 0.2.1                                ...           3 years ago
  • 0.2.0                                ...           3 years ago
  • 0.1.2                                ...           3 years ago
  • 0.1.1                                ...           3 years ago
  • 0.1.0                                ...           4 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 2
Dependencies (3)
Dev Dependencies (8)

Copyright 2014 - 2016 © taobao.org |