ws2801-client
Version:
A client for the webserver for the WS2801-Pi module.
43 lines (42 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketClient = void 0;
const socket_io_client_1 = require("socket.io-client");
const utils_1 = require("./utils");
const index_1 = require("./types/index");
class SocketClient {
constructor(url) {
this.listeners = {};
this.client = socket_io_client_1.io(url);
}
onLedStripChanged(callback) {
const id = utils_1.generateId(10);
this.listeners[id] = {
callback: callback,
event: index_1.Events.ledStripChanged,
};
this.client.on(index_1.Events.ledStripChanged, callback);
return id;
}
onBrightnessChanged(callback) {
const id = utils_1.generateId(10);
this.listeners[id] = {
callback: callback,
event: index_1.Events.brightnessChanged,
};
this.client.on(index_1.Events.brightnessChanged, callback);
return id;
}
removeListener(id) {
const listener = this.listeners[id];
if (listener === undefined) {
return;
}
delete listener[id];
this.client.off(listener.event, listener.callback);
}
dispose() {
this.client.disconnect();
}
}
exports.SocketClient = SocketClient;