this is so nigger rigged dude I really should just use a class or
something
This commit is contained in:
22
src/main.ts
22
src/main.ts
@ -8,6 +8,7 @@ import {
|
|||||||
import striptags from "striptags";
|
import striptags from "striptags";
|
||||||
import { PrismaClient } from "../generated/prisma/client.js";
|
import { PrismaClient } from "../generated/prisma/client.js";
|
||||||
import { createWebsocket } from "./websocket.js";
|
import { createWebsocket } from "./websocket.js";
|
||||||
|
import { WebSocket } from "ws";
|
||||||
|
|
||||||
const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
@ -153,16 +154,29 @@ const postReplyToStatus = async (
|
|||||||
|
|
||||||
let ws = createWebsocket();
|
let ws = createWebsocket();
|
||||||
|
|
||||||
|
const reconnect = (ws: WebSocket) => {
|
||||||
|
if (ws) {
|
||||||
|
ws.close();
|
||||||
|
}
|
||||||
|
return createWebsocket();
|
||||||
|
};
|
||||||
|
|
||||||
|
ws.on("close", () => {
|
||||||
|
for (let i = 0; i < 5; i++) {
|
||||||
|
if (ws.readyState !== WebSocket.OPEN) {
|
||||||
|
setTimeout(() => {
|
||||||
|
ws = reconnect(ws);
|
||||||
|
}, 5000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ws.on("upgrade", () => {
|
ws.on("upgrade", () => {
|
||||||
console.log(
|
console.log(
|
||||||
`Websocket connection to ${process.env.PLEROMA_INSTANCE_DOMAIN} successful.`
|
`Websocket connection to ${process.env.PLEROMA_INSTANCE_DOMAIN} successful.`
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ws.on("close", (event: CloseEvent) => {
|
|
||||||
console.log(`Connection closed: ${event.reason}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
ws.on("open", () => {
|
ws.on("open", () => {
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
ws.send(JSON.stringify({ type: "ping" }));
|
ws.send(JSON.stringify({ type: "ping" }));
|
||||||
|
Reference in New Issue
Block a user