Loop monitor POC

Loop monitor POC
This commit is contained in:
Shahana Farooqui 2019-12-10 14:52:53 -05:00
parent c0dd171873
commit 2f5817cb36
29 changed files with 1999 additions and 147 deletions

39
rtl.js
View file

@ -3,6 +3,11 @@ const common = require("./common");
const debug = require("debug")("node-angular");
const http = require("http");
var connect = require('./connect').setServerConfiguration(); //Do NOT Remove
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());
const onError = error => {
if (error.syscall !== "listen") {
@ -35,6 +40,40 @@ const onListening = () => {
};
const server = http.createServer(app);
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++;
}, 2000);
});
socket.on('end', function() {
// call = null;
clearInterval(interval);
console.log('Socket stopped subscription');
});
});
server.on("error", onError);
server.on("listening", onListening);
server.listen(common.port);