UNPKG

@cocalc/hub

Version:
45 lines 1.97 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const Primus = require("primus"); const base_path_1 = __importDefault(require("@cocalc/backend/base-path")); const logger_1 = __importDefault(require("@cocalc/backend/logger")); const primus_client_1 = __importDefault(require("@cocalc/hub/primus-client")); const { Client } = require("@cocalc/hub/client"); const misc_1 = require("@cocalc/util/misc"); const database_1 = require("./database"); function init({ httpServer, router, projectControl, clients, host, port, isPersonal, }) { const logger = (0, logger_1.default)("primus"); // It is now safe to change the primusOpts below, and this // doesn't require changing anything anywhere else. // See https://github.com/primus/primus#getting-started const primusOpts = { pathname: (0, path_1.join)(base_path_1.default, "hub"), maxLength: 2 * 10485760, compression: true, }; const 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, logger, database: database_1.database, compute_server: projectControl, host, port, personal: isPersonal, }); logger.info(`num_clients=${(0, misc_1.len)(clients)}`); }); // Serve the primus.js client code via the express router. (0, primus_client_1.default)(router, primus_server); } exports.default = init; //# sourceMappingURL=primus.js.map