@nogard7491/wsc

Simple to use, blazing fast and thoroughly tested websocket client.

Usage no npm install needed!

<script type="module">
  import nogard7491Wsc from 'https://cdn.skypack.dev/@nogard7491/wsc';
</script>

README

Web Socket Client (wsc)

Wsc is simple to use, blazing fast and thoroughly tested websocket client.

Table of contents

Installing

npm install @nogard7491/wsc --save

Requiring

Via tag "script"

<script src="./node_modules/@nogard7491/wsc/dist/wsc-2.0.4.min.js"></script>
<script>
    var wsc = new Wsc.default('ws://echo.websocket.org');
</script>

Via Node.js require

<script>
    const Wsc = require('@nogard7491/wsc').default;

    const wsc = new Wsc('ws://echo.websocket.org');
</script>

Via ES6 import

<script>
    import Wsc from '@nogard7491/wsc';

    const wsc = new Wsc('ws://echo.websocket.org');
</script>

Usage examples

Simple usage

/** @type {Wsc} wsc Websocket client. */
var wsc = new Wsc.default(
    'ws://echo.websocket.org', // connecting url
    undefined, // protocols
);

// triggered when trying to connect through a method call "connect"
wsc.on('opening', function() {
    console.log('opening', this.readyState);
});

// triggered when opening a connection
wsc.on('open', function(event) {
    console.log('open', this.readyState);
});

// triggered when a message is received
wsc.on('message', function(event) {
    console.log('message', this.readyState, '"' + event.data + '"');
    this.close();
});

// triggered when trying to connect through a method call "close"
wsc.on('closing', function() {
    console.log('closing', this.readyState);
});


// triggered when closing a connection
wsc.on('close', function(event) {
    console.log('close', this.readyState);
});

wsc.connect();
wsc.send('some data');

Usage with options

/** @type {Wsc} wsc Websocket client. */
var wsc = new Wsc.default('ws://echo.websocket.org', undefined, {
    useMessageQueue: true, // use event queue with inactive connection
    reconnection: true, // use reconnection
    reconnectionOptions: { // reconnection options
        attempts: 10, // max number of reconnection attempts or Infinity
        delay: 1000, // reconnection delay time
        maxDelay: 10000, // max reconnection delay time
        increaseDelay: 1000, // delay time which will increase the main delay time when trying to reconnect
    }
});

// triggered when trying to connect through a method call "connect"
wsc.on('opening', function() {
    console.log('opening');
});

// triggered when trying to connect through a method call "close"
wsc.on('closing', function() {
    console.log('closing');
});

wsc.connect();
wsc.send('some data');

// triggered when opening a connection
wsc.on('open', function(event) {
    console.log('open', event);
});

// triggered when a message is received
wsc.on('message', function(event) {
    console.log('message', event);
    this.close();
});

// triggered when closing a connection
let eventId = wsc.on('close', function(event) {
    console.log('close', event);
});

// removes event listener by identifier
wsc.off(eventId);

// removes event listeners by type
wsc.off('open');

// removes event listeners by handler
wsc.off(function() {
    console.log('closing');
});

Changelog

v2.0.0 (2018-12-01)

Added

  • New methods "on" and "off" for adding and removing event listeners
  • Getting event listener identifier

Removed

  • Old methods "onOpening", "onOpen", "onReady", "onMessage", "onClosing", "onClose" and "onError"

v1.0.0 (2018-11-25)

License

MIT