@braind/adventure

0.2.6 • Public • Published

Adventure npm Code Climate gzip size

Simple WebSocket client with dead-simple Redux integration

Installation

# yarn
yarn add @braind/adventure

# npm
npm install @braind/adventure --save

Usage

import adventureClient from '@braind/adventure';
import store from './redux/store';

const adventure = new adventureClient({
  debug: [boolean] default is false,
  handleError: [function] optional,
  handleMessage: [function] optional,
  maxReconectAttempts: [number] default is 3,
  reconnect: [boolean] default is false,
  reconnectInterval: [number] default is 5000ms,
  reduxDispatcher: [function] optional,
  responseType: [json, text] default is json,
  url: [string => 'ws://localhost:3000'] required
});

function handleMessage(message) {
  console.log(message);

  if (message === 'Ping' || message.type === 'Ping') {
    adventure.send('Pong');
  }
}

function reduxDispatcher(message) {
  const { type, data: payload } = message;

  switch(type) {
    case 'RECEIVED_INFO':
      store.dispatch({
        type: 'RECEIVED_INFO',
        payload
      });

    default:
      console.log('Received unspecified action type');
  }
}

const currentSocketNumber = adventure.socketNumber();
const nextSocketNumber = adventure.nextSocketNumber();
const lastSocketNumber = adventure.lastSocketNumber();

Package Sidebar

Install

npm i @braind/adventure

Weekly Downloads

3

Version

0.2.6

License

MIT

Last publish

Collaborators

  • kocisov