import { share } from'rxjs/operators';import { messages, ws } from'@buccaneer/rxws';constwebsocketParams= { url:'wss://mysite.com', topics: ['message','news'],};constws$=ws(websocketParams).pipe(share() // pipe the Observable to a Subject);// get a stream of messages from the server:constmessage$=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';constws$=ws({url:'wss://mysite.com'}).pipe(share());// send a stream of messages to the server:constmessagesToPublish$=from([ {text:'hello'}, {text:'goodbye'},]);constpublisher$=ws$.pipe(broadcast(messagesToPublish$,'post'));publisher$.subscribe();
Handle interruptions to the client's connection
import { share } from'rxjs/operators';import { connections, disconnections, ws } from'@buccaneer/rxws';constwebsocketParams= { url:'wss://mysite.com', topics: ['message','news']};constws$=ws(websocketParams).pipe(share());constdisconnection$=ws$.pipe(disconnections());disconnection$.subscribe( () =>console.log('You are disconnected from the server!'));constreconnection$=ws$.pipe(connections());reconnection$.subscribe( () =>console.log('You have reconnected to the server!'));