I'm trying to create a Discord bot using raw api, but after some time, the bot doesn't works anymore.
I think is because I don't maintain websocket connection, so, how I can mantain it?
My current code:
const ws = new WebSocket("wss://gateway.discord.gg/?v=6&encoding=json");
let interval = 0;
let payload = {
op: 2,
d: {
token: botToken,
intents: 32767,
properties: {
$os: "linux",
$browser: "chrome",
$device: "chrome",
},
},
};
ws.on("open", function open() {
ws.send(JSON.stringify(payload));
});
ws.on("message", function incoming(data) {
let response = JSON.parse(data);
const { t, event, op, d } = response;
switch (op) {
case 10:
const { heartbeat_interval } = d;
interval = heartbeat(heartbeat_interval);
break;
}
});
const heartbeat = (ms) => {
return setInterval(() => {
ws.send(JSON.stringify({ op: 1, d: null }));
}, ms);
};