Quick Start
npm
npm i @buccaneer/rxws --save
yarn
yarn add @buccaneer/rxws
Subscribe to messages from a server
import { share } from 'rxjs/operators';
import { messages, ws } from '@buccaneer/rxws';
const websocketParams = {
url: 'wss://mysite.com',
topics: ['message', 'news'],
};
const ws$ = ws(websocketParams).pipe(
share() // pipe the Observable to a Subject
);
// get a stream of messages from the server:
const message$ = ws$.pipe(
messages() // get all messages from the WebSocket.
);
message$.subscribe(console.log); // log messages from the server
Publish messages to a server
import { from } from 'rxjs';
import { share } from 'rxjs/operators';
import { broadcast, ws } from '@buccaneer/rxws';
const websocketParams = {
url: 'wss://mysite.com',
topics: ['message', 'news']
};
const ws$ = ws(websocketParams).pipe(share());
// send a stream of messages to the server:
const messagesToPublish$ = from([
{text: 'hello', topic: 'message'}, // topics are optional
{text: 'goodbye', topic: 'message'},
]);
const publisher$ = ws$.pipe(
broadcast(messagesToPublish$)
);
publisher$.subscribe();
Handle interruptions to the client's connection
import { share } from 'rxjs/operators';
import { connections, disconnections, ws } from '@buccaneer/rxws';
const websocketParams = {
url: 'wss://mysite.com',
topics: ['message', 'news']
};
const ws$ = ws(websocketParams).pipe(share());
const disconnection$ = ws$.pipe(
disconnections()
);
disconnection$.subscribe(
() => console.log('You are disconnected from the server!')
);
const reconnection$ = ws$.pipe(
connections()
);
reconnection$.subscribe(
() => console.log('You have reconnected to the server!')
);
Next steps
Check out the full API.
Last updated