added socket.io
This commit is contained in:
parent
9cc41fca47
commit
6802561e45
2
app.js
2
app.js
@ -1,6 +1,6 @@
|
|||||||
var nodeModel = require('./lib/node');
|
var nodeModel = require('./lib/node');
|
||||||
|
|
||||||
var node = new nodeModel(config);
|
var node = new nodeModel();
|
||||||
|
|
||||||
console.log(node.stats);
|
console.log(node.stats);
|
||||||
|
|
||||||
|
56
lib/node.js
56
lib/node.js
@ -4,11 +4,16 @@ var os = require('os');
|
|||||||
var slugs = require('slugs');
|
var slugs = require('slugs');
|
||||||
var HttpRequest = require('xmlhttprequest').XMLHttpRequest;
|
var HttpRequest = require('xmlhttprequest').XMLHttpRequest;
|
||||||
|
|
||||||
|
var io = require('socket.io-client');
|
||||||
|
var socket = io.connect('http://localhost:3000', {reconnect: true});
|
||||||
|
|
||||||
var MAX_BLOCKS_HISTORY = 12,
|
var MAX_BLOCKS_HISTORY = 12,
|
||||||
LOWEST_TIMESTAMP = 0;
|
LOWEST_TIMESTAMP = 0;
|
||||||
|
|
||||||
function Node()
|
function Node()
|
||||||
{
|
{
|
||||||
|
var self = this;
|
||||||
|
|
||||||
this.info = {
|
this.info = {
|
||||||
ip: getExternalIp(),
|
ip: getExternalIp(),
|
||||||
name: process.env.ETH_CLIENT,
|
name: process.env.ETH_CLIENT,
|
||||||
@ -37,14 +42,31 @@ function Node()
|
|||||||
errors: []
|
errors: []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.socket = false;
|
||||||
this.pendingWatch = false;
|
this.pendingWatch = false;
|
||||||
this.chainWatch = false;
|
this.chainWatch = false;
|
||||||
this.updateInterval = false;
|
this.updateInterval = false;
|
||||||
|
|
||||||
web3.setProvider(new web3.providers.HttpSyncProvider('http://' + (process.env.RPC_HOST || 'localhost') + ':' + (process.env.RPC_PORT || '8080')));
|
web3.setProvider(new web3.providers.HttpSyncProvider('http://' + (process.env.RPC_HOST || 'localhost') + ':' + (process.env.RPC_PORT || '8080')));
|
||||||
this.socket = require('socket.io-client')(process.env.SOCKET_SERVER || 'wss://localhost/socket.io/');
|
|
||||||
|
|
||||||
this.init();
|
// this.init();
|
||||||
|
|
||||||
|
socket.on('connect', function(data) {
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
self.socket = true;
|
||||||
|
self.emit('hello', self.info);
|
||||||
|
|
||||||
|
console.log('connected!');
|
||||||
|
|
||||||
|
socket.on('disconnect', function(data) {
|
||||||
|
console.log(data);
|
||||||
|
|
||||||
|
self.socket = false;
|
||||||
|
|
||||||
|
console.log('disconnected');
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -237,7 +259,7 @@ Node.prototype.update = function()
|
|||||||
{
|
{
|
||||||
this.getStats();
|
this.getStats();
|
||||||
|
|
||||||
this.socket.emit('update', this.prepareStats());
|
this.emit('update', this.prepareStats());
|
||||||
|
|
||||||
return this.stats;
|
return this.stats;
|
||||||
};
|
};
|
||||||
@ -262,25 +284,31 @@ Node.prototype.setWatches = function()
|
|||||||
}, 1000);
|
}, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Node.prototype.emit = function(message, payload)
|
||||||
|
{
|
||||||
|
if(this.socket){
|
||||||
|
try {
|
||||||
|
socket.emit(message, payload);
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Node.prototype.init = function()
|
Node.prototype.init = function()
|
||||||
{
|
{
|
||||||
var self = this;
|
|
||||||
|
|
||||||
this.socket.on('connect', function(){
|
|
||||||
self.socket.emit('hello', self.info);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.socket.on('disconnect', function() {
|
|
||||||
self.socket.emit('goodbye', { id: self.info.id });
|
|
||||||
})
|
|
||||||
|
|
||||||
this.update();
|
this.update();
|
||||||
this.setWatches();
|
this.setWatches();
|
||||||
}
|
}
|
||||||
|
|
||||||
Node.prototype.stop = function()
|
Node.prototype.stop = function()
|
||||||
{
|
{
|
||||||
this.socket.disconnect();
|
this.emit('disconnect');
|
||||||
|
|
||||||
if(this.updateInterval)
|
if(this.updateInterval)
|
||||||
clearInterval(this.updateInterval);
|
clearInterval(this.updateInterval);
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
"RPC_PORT" : "8080",
|
"RPC_PORT" : "8080",
|
||||||
"ETH_CLIENT" : "",
|
"ETH_CLIENT" : "",
|
||||||
"ETH_TYPE" : "C++ 0.8.1",
|
"ETH_TYPE" : "C++ 0.8.1",
|
||||||
"SOCKET_SERVER" : "wss://eth-netstats.herokuapp.com/socket.io/",
|
"SOCKET_HOST" : "eth-netstats.herokuapp.com",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
Loading…
Reference in New Issue
Block a user