UNPKG

smc-hub

Version:

CoCalc: Backend webserver component

40 lines 1.88 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var path_1 = require("path"); var Primus = require("primus"); var base_path_1 = __importDefault(require("smc-util-node/base-path")); var logger_1 = __importDefault(require("smc-util-node/logger")); var primus_client_1 = __importDefault(require("smc-hub/primus-client")); var Client = require("smc-hub/client").Client; var misc_1 = require("smc-util/misc"); var database_1 = require("./database"); function init(_a) { var httpServer = _a.httpServer, router = _a.router, projectControl = _a.projectControl, clients = _a.clients, host = _a.host, isPersonal = _a.isPersonal; var logger = logger_1.default("primus"); // It is now safe to change the primusOpts below, and this // doesn't require changing anything anywhere else. var primusOpts = { pathname: path_1.join(base_path_1.default, "hub") }; var primus_server = new Primus(httpServer, primusOpts); logger.info("listening on " + primusOpts.pathname); // Make it so new websocket connection requests get handled: primus_server.on("connection", function (conn) { // Now handle the connection logger.info("new connection from " + conn.address.ip + " -- " + conn.id); clients[conn.id] = new Client({ conn: conn, logger: logger, database: database_1.database, compute_server: projectControl, host: host, personal: isPersonal, }); logger.info("num_clients=" + misc_1.len(clients)); }); // Serve the primus.js client code via the express router. primus_client_1.default(router, primus_server); } exports.default = init; //# sourceMappingURL=primus.js.map