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();
+    }
+}