2018-09-15 01:31:01 +00:00
|
|
|
const app = require("./app");
|
2019-02-12 13:36:04 +00:00
|
|
|
const common = require("./common");
|
2018-09-15 01:31:01 +00:00
|
|
|
const debug = require("debug")("node-angular");
|
|
|
|
const http = require("http");
|
2019-04-06 02:52:00 +00:00
|
|
|
var connect = require('./connect').setServerConfiguration(); //Do NOT Remove
|
2019-12-10 19:52:53 +00:00
|
|
|
const grpc = require('grpc');
|
|
|
|
const protoLoader = require('@grpc/proto-loader');
|
|
|
|
const packageDefinition = protoLoader.loadSync('./controllers/loopd/client.proto', {keepCase: true, longs: String, enums: String, defaults: true, oneofs: true});
|
|
|
|
const looprpc = grpc.loadPackageDefinition(packageDefinition).looprpc;
|
|
|
|
const swapClient = new looprpc.SwapClient('localhost:11010', grpc.credentials.createInsecure());
|
2018-09-15 01:31:01 +00:00
|
|
|
|
|
|
|
const onError = error => {
|
|
|
|
if (error.syscall !== "listen") {
|
|
|
|
throw error;
|
|
|
|
}
|
2019-03-18 23:41:36 +00:00
|
|
|
const bind = typeof addr === "string" ? "pipe " + addr : "port " + common.port;
|
2018-09-15 01:31:01 +00:00
|
|
|
switch (error.code) {
|
|
|
|
case "EACCES":
|
|
|
|
console.error(bind + " requires elevated privileges");
|
|
|
|
process.exit(1);
|
|
|
|
break;
|
|
|
|
case "EADDRINUSE":
|
|
|
|
console.error(bind + " is already in use");
|
|
|
|
process.exit(1);
|
|
|
|
break;
|
2019-01-01 16:26:51 +00:00
|
|
|
case "ECONNREFUSED":
|
2019-02-14 02:31:26 +00:00
|
|
|
console.error("Server is down/locked");
|
2018-09-15 01:31:01 +00:00
|
|
|
default:
|
2019-01-01 16:26:51 +00:00
|
|
|
console.error("DEFUALT ERROR");
|
|
|
|
console.error(error.code);
|
2018-09-15 01:31:01 +00:00
|
|
|
throw error;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const onListening = () => {
|
|
|
|
const addr = server.address();
|
2019-02-16 22:43:12 +00:00
|
|
|
const bind = typeof addr === "string" ? "pipe " + addr : "port " + common.port;
|
2018-09-15 01:31:01 +00:00
|
|
|
debug("Listening on " + bind);
|
2019-03-31 15:39:41 +00:00
|
|
|
console.log('Server is up and running, please open the UI at http://localhost:' + common.port);
|
2018-09-15 01:31:01 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
const server = http.createServer(app);
|
2019-12-10 19:52:53 +00:00
|
|
|
const io = require('socket.io')(server);
|
|
|
|
|
|
|
|
const loopMonitor = io.of('/loopMonitor').on('connection', (socket) => {
|
|
|
|
let i = 1;
|
|
|
|
let call = null;
|
|
|
|
socket.on('start', function() {
|
|
|
|
console.log('Application started subscription');
|
|
|
|
console.log(call);
|
|
|
|
var request = {};
|
|
|
|
call = swapClient.monitor(request);
|
|
|
|
call.on('data', function(response) {
|
|
|
|
console.log('Monitor sent message as: ' + JSON.stringify(response));
|
|
|
|
socket.emit('message', { message: response });
|
|
|
|
});
|
|
|
|
call.on('status', function(status) {
|
|
|
|
console.log('Monitor status: ' + JSON.stringify(status));
|
|
|
|
socket.emit('status', { message: status });
|
|
|
|
});
|
|
|
|
call.on('end', function() {
|
|
|
|
console.log('Monitor stopped streaming');
|
|
|
|
socket.emit('end');
|
|
|
|
});
|
|
|
|
interval = setInterval(() => {
|
|
|
|
socket.emit('message', { message: 'Message ' + i });
|
|
|
|
i++;
|
2019-12-11 22:39:39 +00:00
|
|
|
}, 15000);
|
2019-12-10 19:52:53 +00:00
|
|
|
});
|
|
|
|
socket.on('end', function() {
|
2019-12-11 22:39:39 +00:00
|
|
|
call = null;
|
2019-12-10 19:52:53 +00:00
|
|
|
clearInterval(interval);
|
|
|
|
console.log('Socket stopped subscription');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
2018-09-15 01:31:01 +00:00
|
|
|
server.on("error", onError);
|
|
|
|
server.on("listening", onListening);
|
2019-02-16 22:43:12 +00:00
|
|
|
server.listen(common.port);
|