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',
topics: ['message'],
};
const messageBack$ = messageIn$.pipe(conduit({...socketConfig}));
messageBack$.subscribe(console.log);
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.