UNPKG

2.24 kBJavaScriptView Raw
1//tishadow_socket helper
2var io = require("socket.io-client"), logger = require('./logger.js');
3var config = {
4 host: '127.0.0.1',
5 port: 3000,
6 room: 'default',
7 socket: {
8 'reconnection' : true,
9 'reconnectionDelay' : 1000,
10 'reconnectionDelayMax' : 5000,
11 'reconnectionAttempts' : 50,
12 'force new connection' : true
13 }
14};
15
16exports.connect = function(onconnect, onmessage, onfail) {
17 var socket = io.connect('http://'+config.host+':'+config.port, config.socket);
18 var running = 0;
19 socket.on('connect', function(data) {
20 socket.emit("join", {name: 'controller', room: config.room});
21 if (onconnect && typeof onconnect === 'function') {
22 onconnect(socket);
23 }
24 });
25 socket.on('reconnect', function(e){
26 logger.log("WARN", e.name, "Reconnect");
27 });
28 socket.on('reconnecting', function(e){
29 logger.log("WARN", e.name, "Reconnecting");
30 });
31 socket.on('connect_error', function(e){
32 logger.log("ERROR", e.name, "Connect Failed");
33 console.log(e);
34 if (onfail && typeof onfail === 'function') {
35 onfail(socket);
36 }
37 });
38 socket.on('device_connect', function(e){
39 running = running++;
40 logger.log("INFO", e.name, "Connected");
41 });
42 socket.on('device_disconnect', function(e){
43 running = running--;
44 logger.log("WARN", e.name,"Disconnected");
45 });
46 socket.on('device_log', function(data) {
47 if (data.message.match("Runner Finished$")) {
48 running--;
49 if (running <= 0) {
50 running = 0;
51 /*if (config.runCoverage){
52 coverage = require("./coverage");
53 coverage.addUnRequiredCoverage();
54 var coverageReportDir = path.join(config.tishadow_coverage, data.name.replace(/(, |\.)/g, "_"));
55 coverage.writeReports(coverageReportDir, config.runCoverage);
56 logger.log("INFO", "COVER","Check the report on " + coverageReportDir + " directory");
57 }*/
58 socket.disconnect();
59 }
60 } else if (data.level !=="INSPECT") {
61 if (onmessage && typeof onmessage === 'function') {
62 onmessage(data.message);
63 }
64 logger.log(data.level, data.name, data.message);
65 }
66 });
67 socket.on('connect_failed', function(data) {
68 logger.error("connect_failed: " + data);
69 });
70 return socket;
71};
\No newline at end of file