blob: aaf142a90ba8c43cfb1b3b93f3a0501308d9288d [file] [log] [blame]
Matteo Scandolo035c5932016-12-14 09:55:15 -08001import * as io from 'socket.io-client';
2import {Subject, Observable} from 'rxjs/Rx';
3import {AppConfig} from '../../config/app.config';
4
5export interface IWSEvent {
6 model: string;
7 msg: {
8 changed_fields: string[],
9 object?: any,
10 pk?: number
11 };
12}
13
14export interface IWSEventService {
15 list(): Observable<IWSEvent>;
16}
17
18export class WebSocketEvent {
19 private _events: Subject<IWSEvent> = new Subject<IWSEvent>();
20 private socket;
21 constructor() {
22 console.log('socket.io');
23 this.socket = io(AppConfig.websocketClient);
24 this.socket.on('event', (data: IWSEvent): void => {
25 this._events.next(data);
26 });
27 }
28 list() {
29 return this._events.asObservable();
30 }
31}