Creating Stores and using Observables
Change-Id: I214692e64df065beaddee0e0ec8759de540c269d
diff --git a/src/app/datasources/websocket/global.ts b/src/app/datasources/websocket/global.ts
new file mode 100644
index 0000000..aaf142a
--- /dev/null
+++ b/src/app/datasources/websocket/global.ts
@@ -0,0 +1,31 @@
+import * as io from 'socket.io-client';
+import {Subject, Observable} from 'rxjs/Rx';
+import {AppConfig} from '../../config/app.config';
+
+export interface IWSEvent {
+ model: string;
+ msg: {
+ changed_fields: string[],
+ object?: any,
+ pk?: number
+ };
+}
+
+export interface IWSEventService {
+ list(): Observable<IWSEvent>;
+}
+
+export class WebSocketEvent {
+ private _events: Subject<IWSEvent> = new Subject<IWSEvent>();
+ private socket;
+ constructor() {
+ console.log('socket.io');
+ this.socket = io(AppConfig.websocketClient);
+ this.socket.on('event', (data: IWSEvent): void => {
+ this._events.next(data);
+ });
+ }
+ list() {
+ return this._events.asObservable();
+ }
+}