From 652064ba61a13a8aa07b2dd17991415b06f41566 Mon Sep 17 00:00:00 2001 From: emad-salah Date: Wed, 8 Apr 2020 17:06:24 +0100 Subject: [PATCH] Sockets refactoring and LND Socket functionality completed! --- src/server.js | 5 +---- src/sockets.js | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/server.js b/src/server.js index c430d808..4a22b471 100644 --- a/src/server.js +++ b/src/server.js @@ -236,10 +236,7 @@ const server = program => { const io = require('socket.io')(serverInstance) - const Sockets = require('./sockets')( - io, - LightningServices.services.lightning - ) + const Sockets = require('./sockets')(io) require('./routes')(app, defaults, Sockets, { serverHost: module.serverHost, diff --git a/src/sockets.js b/src/sockets.js index 628fbe2c..476da12f 100644 --- a/src/sockets.js +++ b/src/sockets.js @@ -1,17 +1,20 @@ // app/sockets.js const logger = require("winston"); +const LightningServices = require("../utils/lightningServices"); module.exports = ( /** @type {import('socket.io').Server} */ - io, - lightning, + io ) => { const Mediator = require("../services/gunDB/Mediator/index.js"); const onNewInvoice = socket => { - const stream = lightning.subscribeInvoice({}); + const { lightning } = LightningServices.services; + logger.warn("Subscribing to invoices socket...") + const stream = lightning.subscribeInvoices({}); stream.on("data", data => { + logger.info("[SOCKET] New invoice data:", data); socket.emit("invoice:new", data) }) stream.on("end", () => { @@ -30,8 +33,11 @@ module.exports = ( } const onNewTransaction = socket => { - const stream = lightning.subscribeTransaction({}); + const { lightning } = LightningServices.services; + const stream = lightning.subscribeTransactions({}); + logger.warn("Subscribing to transactions socket...") stream.on("data", data => { + logger.info("[SOCKET] New transaction data:", data); socket.emit("transaction:new", data) }) stream.on("end", () => { @@ -58,6 +64,7 @@ module.exports = ( logger.info("New socket client connected (id=" + socket.id + ")."); const isOneTimeUseSocket = !!socket.handshake.query.IS_GUN_AUTH + const isLNDSocket = !!socket.handshake.query.IS_LND_SOCKET if (isOneTimeUseSocket) { logger.info('New socket is one time use') @@ -86,8 +93,10 @@ module.exports = ( // this is where we create the websocket connection // with the GunDB service. Mediator.createMediator(socket); - onNewInvoice(socket); - onNewTransaction(socket); + if (isLNDSocket) { + onNewInvoice(socket); + onNewTransaction(socket); + } /** listening if client has disconnected */ socket.on("disconnect", () => {