46 lines
957 B
JavaScript
46 lines
957 B
JavaScript
import { ServerAuth } from "/js/connect/auth.js";
|
|
|
|
class ApiMethods {
|
|
constructor (api) {
|
|
this.api = api;
|
|
}
|
|
|
|
async info () {
|
|
const socket = this.api.socket;
|
|
const promise = new Promise((rs, rj) => {
|
|
socket.onmessage = (ev) => {
|
|
const data = JSON.parse(ev.data).result;
|
|
rs(data);
|
|
};
|
|
socket.onerror = (err) => rj(err);
|
|
});
|
|
socket.send(
|
|
JSON.stringify({
|
|
method: "info",
|
|
}),
|
|
);
|
|
return await promise;
|
|
}
|
|
}
|
|
|
|
export class ApiSocket {
|
|
constructor ({
|
|
isTLSmode, address, port
|
|
}) {
|
|
this.tlsMode = isTLSmode;
|
|
this.address = address;
|
|
this.port = port;
|
|
|
|
this.socket = new WebSocket(`${!isTLSmode ? "ws" : "wss"}://${address}:${port}`);
|
|
this.methods = new ApiMethods(this);
|
|
}
|
|
|
|
async run () {
|
|
const socket = this.socket;
|
|
const promise = new Promise((rs, rj) => {
|
|
socket.onopen = () => this.methods.info().then(data => rs(data));
|
|
socket.onerror = (err) => rj(err);
|
|
});
|
|
return await promise;
|
|
}
|
|
} |