led-bot/lights/request.js

53 lines
1.2 KiB
JavaScript

import * as ws from "ws";
import * as net from "net";
const hostname = "192.168.1.219";
const port = 29999;
function getBinarySize(string) {
return Buffer.byteLength(string, "utf8");
}
// export function contactServer(callback, errorCallback) {
// let client = new net.Socket();
// let c_port = global.ctx.lights.port || port;
// let c_addr = global.ctx.lights.addr || hostname;
// client.connect(c_port, c_addr, () => {
// });
// client.on('data', (dat) => {
// let arr = JSON.parse(dat);
// callback(arr);
// client.destroy();
// })
// }
export default function req(data, callback, errorCallback) {
let string_data = data;
let size = getBinarySize(string_data);
if (size > 9999) {
errorCallback("too long");
return;
}
let c_port = global.ctx.lights.port || port;
let c_addr = global.ctx.lights.addr || hostname;
let url = `ws://${c_addr}:${c_port}`;
let client = new ws.WebSocket(url);
client.on("open", () => {
client.send(string_data);
});
client.on("message", (dat) => {
callback(String(dat));
client.close();
});
client.on("error", (e) => {
client.terminate();
errorCallback(e);
});
}