summaryrefslogtreecommitdiff
path: root/app/relay/rpc.js
blob: d21dacc1130fcae7775e5de83d71006ed62b6792 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require('dotenv').config()

import { remote } from './remote'
import * as runner from './runner'

const zerorpc = require('zerorpc')

let connected = false
export const rpc = new zerorpc.Client()
rpc.connect('tcp://127.0.0.1:' + process.env.RPC_PORT)
rpc.on('error', function(error) {
  console.error('RPC server error:', error)
})
console.log('RPC listening on port ' + process.env.RPC_PORT)

rpc.invoke('ping', (err, res, more) => {
  console.log('sent ping to rpc, got', res)
  if (res === 'pong') {
    remote.emit('system_res', {
      type: 'rpc_connected',
      runner: runner.status()
    })
    connected = true
  } else {
    remote.emit('system_res', {
      type: 'rpc_disconnected',
    })
    connected = false
  }
})

export function get_connected() {
  return connected
}
export function set_connected(option) {
  connected = !! option
}