Browse Source

auto reconnect to lnd

feature/dockerfile-arm
Evan Feenstra 5 years ago
parent
commit
3a875da195
  1. 21
      api/grpc/index.ts
  2. 23
      dist/api/grpc/index.js
  3. 2
      dist/api/grpc/index.js.map

21
api/grpc/index.ts

@ -4,6 +4,8 @@ import { sendNotification, sendInvoice } from '../hub'
import * as jsonUtils from '../utils/json'
import * as decodeUtils from '../utils/decode'
import {loadLightning, SPHINX_CUSTOM_RECORD_KEY, verifyAscii} from '../utils/lightning'
import * as controllers from '../controllers'
import * as moment from 'moment'
const constants = require(__dirname + '/../../config/constants.json');
@ -158,8 +160,10 @@ function subscribeInvoices(actions) {
reject(err)
})
call.on('end', function() {
console.log("Closed stream");
const now = moment().format('YYYY-MM-DD HH:mm:ss').trim();
console.log(`Closed stream ${now}`);
// The server has closed the stream.
reconnectToLND()
});
setTimeout(()=>{
resolve(null)
@ -167,6 +171,21 @@ function subscribeInvoices(actions) {
})
}
var i = 0
async function reconnectToLND(){
i++
console.log(`=> [lnd] reconnecting... attempt #${i}`)
try {
await controllers.iniGrpcSubscriptions()
const now = moment().format('YYYY-MM-DD HH:mm:ss').trim();
console.log(`=> [lnd] reconnected! ${now}`)
} catch(e) {
setTimeout(async()=>{ // retry each 2 secs
await reconnectToLND()
},2000)
}
}
export {
subscribeInvoices,
}

23
dist/api/grpc/index.js

@ -15,6 +15,8 @@ const hub_1 = require("../hub");
const jsonUtils = require("../utils/json");
const decodeUtils = require("../utils/decode");
const lightning_1 = require("../utils/lightning");
const controllers = require("../controllers");
const moment = require("moment");
const constants = require(__dirname + '/../../config/constants.json');
// VERIFY PUBKEY OF SENDER
function parseAndVerifyPayload(data) {
@ -168,8 +170,10 @@ function subscribeInvoices(actions) {
reject(err);
});
call.on('end', function () {
console.log("Closed stream");
const now = moment().format('YYYY-MM-DD HH:mm:ss').trim();
console.log(`Closed stream ${now}`);
// The server has closed the stream.
reconnectToLND();
});
setTimeout(() => {
resolve(null);
@ -177,4 +181,21 @@ function subscribeInvoices(actions) {
}));
}
exports.subscribeInvoices = subscribeInvoices;
var i = 0;
function reconnectToLND() {
return __awaiter(this, void 0, void 0, function* () {
i++;
console.log(`=> [lnd] reconnecting... attempt #${i}`);
try {
yield controllers.iniGrpcSubscriptions();
const now = moment().format('YYYY-MM-DD HH:mm:ss').trim();
console.log(`=> [lnd] reconnected! ${now}`);
}
catch (e) {
setTimeout(() => __awaiter(this, void 0, void 0, function* () {
yield reconnectToLND();
}), 2000);
}
});
}
//# sourceMappingURL=index.js.map

2
dist/api/grpc/index.js.map

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save