diff --git a/common/lkt.js b/common/lkt.js index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..662b91833257b3245667a8ffe232ab6cc685ea19 100644 --- a/common/lkt.js +++ b/common/lkt.js @@ -0,0 +1,71 @@ +const logger = require.main.require('./common/logger.js'); +const net = require('net'); + +class LktClient { + + /* The constructor + * - host: String + * - port: String + * + * Private members + * - m_socket: net.socket */ + constructor(port = 6600) { + this.m_online = false; + this.m_port = port; + this.m_socket = new net.Socket(); + const sockopt = { + port: this.m_port, + host: "localhost", + readable: true, + writable: true + }; + + logger.log("debug", "Creating the lektor client"); + this.m_socket.setTimeout(10); + this.m_socket.setEncoding('utf8'); + this.m_socket.on("timeout", () => { + logger.log("error", `Got timeout while connecting to localhost:${this.m_port}`); + this.m_socket.end(); + }); + + this.m_socket.on("ready", () => { + logger.log("debug", `Ready to use socker with localhost:${this.m_port}`); + this.m_online = true; + }); + + this.m_socket.on('data', (data) => { + logger.log("debug", `Recieved "${data.replace(/(\r\n|\n|\r)/gm, "")}"`); + }); + + this.m_socket.on("end", () => { + logger.log("info", `Disconnected from server localhost:${this.m_port}`); + this.m_online = false; + }); + + this.m_socket.on("close", () => { + logger.log("info", `Socket localhost:${this.m_port} closed`); + this.m_online = false; + }); + + this.m_socket.connect(sockopt, () => { + logger.log("info", `Socket connected to localhost:${this.m_port}`); + this.m_online = true; + }); + } + + /* Wait for the socket to be connected */ + wait() { + logger.log("debug", `Waiting to connect to localhost:${this.m_port}`); + var i = 0; + while (! this.m_online) { + } + } + + /* Close the client */ + close() { + logger.log("debug", "Requesting socket shutdown"); + this.m_socket.destroy(); + } +} + +module.exports = LktClient; diff --git a/test/test_lkt.js b/test/test_lkt.js new file mode 100644 index 0000000000000000000000000000000000000000..54b3dc00415fe290b9c655e763f414289670028e --- /dev/null +++ b/test/test_lkt.js @@ -0,0 +1,6 @@ +const logger = require.main.require('./common/logger.js'); +const lkt = require.main.require('./common/lkt.js'); + +var client = new lkt(); + +// client.wait();