socket setup
This commit is contained in:
63
backend/opendock/opendockSocketMonitor.utils.ts
Normal file
63
backend/opendock/opendockSocketMonitor.utils.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { io, type Socket } from "socket.io-client";
|
||||
import { createLogger } from "../logger/logger.controller.js";
|
||||
import { getToken, odToken } from "./opendock.utils.js";
|
||||
|
||||
const log = createLogger({ module: "opendock", subModule: "releaseMonitor" });
|
||||
const TWENTY_FOUR_HOURS = 24 * 60 * 60 * 1000;
|
||||
let socket: Socket | null = null;
|
||||
export const opendockSocketMonitor = async () => {
|
||||
if (!odToken.odToken) {
|
||||
log.info({}, "Getting Auth Token");
|
||||
await getToken();
|
||||
}
|
||||
|
||||
if (
|
||||
new Date(odToken.tokenDate || Date.now()).getTime() <
|
||||
Date.now() - TWENTY_FOUR_HOURS
|
||||
) {
|
||||
log.info({}, "Refreshing Auth Token");
|
||||
await getToken();
|
||||
}
|
||||
const baseSubspaceUrl = "wss://subspace.staging.opendock.com";
|
||||
const url = `${baseSubspaceUrl}?token=${odToken.odToken}`;
|
||||
socket = io(url, { transports: ["websocket"] }); // Enforce 'websocket' transport only.
|
||||
|
||||
socket.on("connect", () => {
|
||||
console.log("Connected");
|
||||
});
|
||||
|
||||
// socket.on("heartbeat", (data) => {
|
||||
// console.log(data);
|
||||
// });
|
||||
|
||||
socket.on("create-Appointment", (data) => {
|
||||
console.log("appt create:", data);
|
||||
});
|
||||
|
||||
socket.on("update-Appointment", (data) => {
|
||||
console.log("appt update:", data);
|
||||
});
|
||||
|
||||
socket.on("error", (data) => {
|
||||
console.log("Error:", data);
|
||||
});
|
||||
|
||||
// socket.onAny((event, ...args) => {
|
||||
// console.log("Received event:", event, args);
|
||||
// });
|
||||
};
|
||||
|
||||
export const killOpendockSocket = () => {
|
||||
if (!socket) {
|
||||
console.log("No active socket to kill");
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("🛑 Killing socket connection...");
|
||||
|
||||
socket.removeAllListeners(); // optional but clean
|
||||
socket.disconnect();
|
||||
socket = null;
|
||||
|
||||
console.log("✅ Socket killed");
|
||||
};
|
||||
Reference in New Issue
Block a user