rxjs
Version:
Reactive Extensions for modern JavaScript
47 lines (45 loc) • 1.36 kB
text/typescript
import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject';
/**
* Wrapper around the w3c-compatible WebSocket object provided by the browser.
*
* ## Examples
* ### Wrapping browser WebSocket
* ```javascript
* import { webSocket } from 'rxjs/webSocket';
*
* let socket$ = webSocket('ws://localhost:8081');
*
* socket$.subscribe(
* (msg) => console.log('message received: ' + msg),
* (err) => console.log(err),
* () => console.log('complete')
* );
*
* socket$.next(JSON.stringify({ op: 'hello' }));
* ```
*
* ### Wraps nodejs-webSocket</caption>
* ```javascript
* import { webSocket } from 'rxjs/webSocket';
* import { w3cwebSocket } from 'webSocket';
*
* let socket$ = webSocket({
* url: 'ws://localhost:8081',
* WebSocketCtor: w3cwebSocket
* });
*
* socket$.subscribe(
* (msg) => console.log('message received: ' + msg),
* (err) => console.log(err),
* () => console.log('complete')
* );
*
* socket$.next(JSON.stringify({ op: 'hello' }));
* ```
*
* @param {string | WebSocketSubjectConfig} urlConfigOrSource the source of the webSocket as an url or a structure defining the webSocket object
* @return {WebSocketSubject}
*/
export function webSocket<T>(urlConfigOrSource: string | WebSocketSubjectConfig<T>): WebSocketSubject<T> {
return new WebSocketSubject<T>(urlConfigOrSource);
}