-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconsoleapi.js
More file actions
32 lines (27 loc) · 891 Bytes
/
consoleapi.js
File metadata and controls
32 lines (27 loc) · 891 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const WebSocket = require('ws');
module.exports.sendCommand = function(rconService) {
return new Promise((resolve, reject) => {
const socket = new WebSocket(`ws://${rconService.server}/${rconService.password}`);
socket.on('message', (data) => {
rconService.disconnect();
const response = rconService.json ? data : JSON.parse(data).Message;
resolve({ result: response, error: null });
});
socket.on('open', () => {
const packet = {
Identifier: rconService.id || -1,
Message: rconService.command,
Name: "WebRcon",
};
socket.send(JSON.stringify(packet));
});
socket.on('error', (e) => {
console.error(e.message); // Log error message
rconService.disconnect();
reject(new Error(e.message));
});
rconService.disconnect = () => {
if (socket) socket.close();
};
});
};