UNPKG

@sevenqi/nodechannel

Version:
43 lines 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionManager = void 0; var session_1 = require("./session"); var config_1 = require("./config"); var SessionManager = /** @class */ (function () { function SessionManager() { this.sessions = new Map(); } SessionManager.prototype.add = function (sessionOptions) { var sessionOption = config_1.Config.getClientOptions(sessionOptions.channelType); return this.addSession(sessionOption.session, sessionOption.channel, [sessionOptions.channelOptions.options, sessionOptions.channelOptions.filter]); }; SessionManager.prototype.addSession = function (ctor, channel, channelArgs) { var session = new ctor(channel, channelArgs); // session.onClose = this.remove.bind(this) this.sessions.set(session.id, session); return session.id; }; SessionManager.prototype.remove = function (id) { this.sessions.delete(id); }; SessionManager.prototype.send = function (id, message) { this.sessions.get(id).send(message); }; SessionManager.prototype.onDataAll = function (func) { this.sessions.forEach(function (session) { session.onMessage = func; }); }; SessionManager.prototype.onData = function (id, func) { this.sessions.get(id).onMessage = func; }; SessionManager.prototype.connect = function (sessionId) { if (this.sessions.get(sessionId) && this.sessions.get(sessionId) instanceof session_1.SessionClient) return this.sessions.get(sessionId).openChannel(); else throw new Error("SessionServer not support connect"); }; return SessionManager; }()); exports.SessionManager = SessionManager; //# sourceMappingURL=sessionManager.js.map