concepto-bridge
Version:
Concepto DSL - Live Mode Bridge
71 lines (70 loc) • 2.26 kB
JavaScript
//tishadow_socket helper
var io = require("socket.io-client"), logger = require('./logger.js');
var config = {
host: '127.0.0.1',
port: 3000,
room: 'default',
socket: {
'reconnection' : true,
'reconnectionDelay' : 1000,
'reconnectionDelayMax' : 5000,
'reconnectionAttempts' : 50,
'force new connection' : true
}
};
exports.connect = function(onconnect, onmessage, onfail) {
var socket = io.connect('http://'+config.host+':'+config.port, config.socket);
var running = 0;
socket.on('connect', function(data) {
socket.emit("join", {name: 'controller', room: config.room});
if (onconnect && typeof onconnect === 'function') {
onconnect(socket);
}
});
socket.on('reconnect', function(e){
logger.log("WARN", e.name, "Reconnect");
});
socket.on('reconnecting', function(e){
logger.log("WARN", e.name, "Reconnecting");
});
socket.on('connect_error', function(e){
logger.log("ERROR", e.name, "Connect Failed");
console.log(e);
if (onfail && typeof onfail === 'function') {
onfail(socket);
}
});
socket.on('device_connect', function(e){
running = running++;
logger.log("INFO", e.name, "Connected");
});
socket.on('device_disconnect', function(e){
running = running--;
logger.log("WARN", e.name,"Disconnected");
});
socket.on('device_log', function(data) {
if (data.message.match("Runner Finished$")) {
running--;
if (running <= 0) {
running = 0;
/*if (config.runCoverage){
coverage = require("./coverage");
coverage.addUnRequiredCoverage();
var coverageReportDir = path.join(config.tishadow_coverage, data.name.replace(/(, |\.)/g, "_"));
coverage.writeReports(coverageReportDir, config.runCoverage);
logger.log("INFO", "COVER","Check the report on " + coverageReportDir + " directory");
}*/
socket.disconnect();
}
} else if (data.level !=="INSPECT") {
if (onmessage && typeof onmessage === 'function') {
onmessage(data.message);
}
logger.log(data.level, data.name, data.message);
}
});
socket.on('connect_failed', function(data) {
logger.error("connect_failed: " + data);
});
return socket;
};