UNPKG

@tygr/socket

Version:

Use websockets to extend redux functionality to server code

41 lines 1.95 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); const core_1 = require("@angular/core"); const core_2 = require("@tygr/core"); const socket_client_config_1 = require("./socket.client.config"); const SocketActions = require("../socket.actions"); const SOCKET_1 = require("../SOCKET"); let SocketService = class SocketService extends core_2.StoreService { constructor(actions$, store) { super(actions$, store, new socket_client_config_1.SocketClientConfig()); this.actions$ = actions$; this.store = store; const config = store.getConfig(SOCKET_1.SOCKET); this.socket = new WebSocket(config.ws); this.socket.onmessage = (event) => { store.dispatch(JSON.parse(event.data)); }; this.socket.onclose = () => { store.dispatch(new SocketActions.ServerDisconnect()); }; } send(action) { this.socket.send(JSON.stringify(action)); } }; SocketService = __decorate([ core_1.Injectable(), __metadata("design:paramtypes", [core_2.Actions$, core_2.Store]) ], SocketService); exports.SocketService = SocketService; //# sourceMappingURL=socket.service.js.map