@bottlenose/rxsocketio

0.7.0 • Public • Published

CircleCI License: MIT Version

Description

@bottlenose/rxsocketio is part of the Bottlenose project. It is a simple, lightweight package which makes it easy to create two-way data streams using Socket.io and RxJS's pipeable operators. Its intent is to encapsulate common websocket patterns (that normally require dozens or hundreds of lines of code to implement) into one-line operators that rely on convention and configuration instead of muddying up your codebase.

Installation

npm i @bottlenose/rxsocketio --save

Or...

yarn add @bottlenose/rxsocketio

Compatability

Platform Support
node.js (>10.0)
Browsers
React Native
Electron

Documentation & Guides

Basic Usage

import {from} from 'rxjs';
import {conduit} from '@bottlenose/rxsocketio';

const messageIn$ = from([
  {topic: 'message', body: 'yarrr'},
  {topic: 'message', body: 'arrr matey'},
  {topic: 'message', body: 'Vitamin C? Never heard of it.'},
]);

const socketConfig = {
  url: 'http://localhost:9080/ws', // socket.io server
  topics: ['message'], // topics to subscribe to. (Defaults to ['message']).
}; 
// the conduit operator sends messages from messageIn$ and emits messages 
// from the server
const messageBack$ = messageIn$.pipe(conduit({...socketConfig}));
messageBack$.subscribe(console.log);
// {topic: 'message', body: 'Welcome Matey.'}
// {topic: 'message', body: 'Yo ho. Yo ho. I am a message from the server.'}

The library also supports some advanced features commonly needed in real applications (like sending binary, verifying receipt of messages before sending the next, customizing the socket.io client, serializers/deserializers and handling disconnections). See the documentation for more information.

Readme

Keywords

Package Sidebar

Install

npm i @bottlenose/rxsocketio

Weekly Downloads

2

Version

0.7.0

License

MIT

Unpacked Size

32.2 kB

Total Files

18

Last publish

Collaborators

  • cvhooser
  • brianbuccaneer