welsonjs/lib/websocket.js
2021-06-25 04:10:53 +09:00

82 lines
1.6 KiB
JavaScript

////////////////////////////////////////////////////////////////////////
// Websocket API
////////////////////////////////////////////////////////////////////////
// references:
// https://stackoverflow.com/questions/52783655/use-curl-with-chrome-remote-debugging
// https://github.com/vi/websocat
var SHELL = require("lib/shell");
var SYS = require("lib/system");
var FILE = require("lib/file");
var WebsocketObject = function() {
this.binPath = "bin\\websocat_nossl_win64";
this.isSSL = false;
this.enableSSL = function() {
this.isSSL = true;
};
this.disableSSL = function() {
this.isSSL = false;
};
this.setBinPath = function(path) {
if (typeof(path) !== "undefined") {
this.binPath = path;
} else {
var arch = SYS.getArch();
if (!this.isSSL) {
if(arch.indexOf("64") > -1) {
this.binPath = "bin\\websocat_nossl_win64";
} else {
this.binPath = "bin\\websocat_nossl_win64";
}
} else {
if(arch.indexOf("64") > -1) {
this.binPath = "bin\\websocat_win64";
} else {
this.binPath = "bin\\websocat_win32";
}
}
}
};
this.send = function(uri, msg) {
var FN = "stdin.txt";
try {
FILE.writeFile(FN, msg + "\n", "utf-8");
console.log(msg);
sleep(1);
return SHELL.exec([
this.binPath,
"-n1",
"-t",
uri,
"<",
FN
]);
} catch (e) {
console.error("WebsocketObject.send() -> " + e.message);
}
};
this.create = function() {
this.setBinPath();
};
this.create();
};
exports.VERSIONINFO = "Websocket Lib (websocket.js) version 0.1";
exports.global = global;
exports.require = global.require;
exports.create = function() {
return new WebsocketObject();
};