import { io, Socket } from "socket.io-client"; import { store } from "../store"; import { updateTelemetry } from "../store/telemetrySlice"; const SERVER_URL = "http://dev.vec-tr.ai:8089/?dashboardId=deviceDashboardSocket&assetId=V16000868651064644504"; const TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxIiwiYWN0aW9uIjoiYXV0aCIsInRva2VuLXZlcnNpb24iOjAsImlhdCI6MTc1MTM0OTUwMSwiZXhwIjoxNzUxNDM1OTAxfQ.0BB0vRcFSMFDC6aILuc__pG3Ycy8EndYOAwLwCHji1M"; let socket: Socket | null = null; export const initSocket = () => { socket = io(SERVER_URL, { transports: ["websocket"], extraHeaders: { Authorization: `Bearer ${TOKEN}`, controllingServer: "http://dev.vec-tr.ai:8082", }, reconnection: true, }); socket.on("connect", () => { console.log("Socket connected:", socket?.id); }); socket.on("connect_error", (error) => { console.error("Socket connection error:", error); }); socket.on("disconnect", (reason) => { console.log("Socket disconnecteddddd", reason, "abc"); }); socket.on("dataUpdate", handleSocketData); }; export const disconnectSocket = () => { if (socket) { socket.disconnect(); console.log("Socket disconnected"); } }; const handleSocketData = (data: any) => { try { const SoH = data.dataSeries.assetData[0].bms[0].bmsSpecific.ivecSpecific.soh; const SoC = data?.dataSeries?.assetData?.[0]?.bms?.[0]?.batterySoc; // console.log(SoC, SoH); store.dispatch(updateTelemetry({ SoH, SoC })); } catch (err) { console.error("Error handling socket data:", err); } };