UNPKG

federer

Version:

Experiments in asynchronous federated learning and decentralized learning

39 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const assert = require("assert"); const io = tslib_1.__importStar(require("socket.io-client")); const common_1 = require("../common"); const cli_1 = require("./cli"); const Client_1 = require("./Client"); let client; const args = cli_1.getCLIArgs(); let logger; const coordinator = io.io(args["coordinator-url"]); coordinator.on("start", (options) => { assert(client === undefined); logger = common_1.createLogger(options.loggerOptions, `Client ${options.id}`, `client-${options.id}.log`); logger.debug(`Received start options: ${JSON.stringify(options, null, " ")}`); void Client_1.Client.create(args["server-url"], options, logger).then((newClient) => { client = newClient; coordinator.emit("started"); }); }); coordinator.on("stop", () => { assert(client !== undefined); logger?.debug("Received stop message"); void client.terminate().then(() => { client = undefined; coordinator.emit("stopped"); }); }); coordinator.once("kill", () => { logger?.debug("Received kill message"); coordinator.emit("killed", "received kill"); process.exit(0); }); coordinator.on("disconnect", (reason) => { logger?.warn(`Disconnected from coordinator for reason: '${reason}'`); }); coordinator.emit("ready"); //# sourceMappingURL=index.js.map