import { ipcMain, IpcMainInvokeEvent, IpcMainEvent } from "electron";
import { initAudioIO } from "@/background/audio";
import { ClientMessage } from "@/types";
+import { store } from "@/background/store";
// Instantiate socket session with crimata-platorm.
console.log('[IPC]: init-session');
- initSession(cid);
+ const token = store.get('key');
+ const crimataId = store.get('crimataId');
+
+
+ initSession({
+ token,
+ crimataId
+ });
initAudioIO();
}
// Call this to initialize session with Crimata servers.
-export const initSession = (cid: string): void => {
+export const initSession = (authPayload: {
+ token: string;
+ crimataId: string;
+}): void => {
console.log("SESS:Creating new session.")
// Load Json or createState.
state = loadState("session.json");
// Open socket connection.
- createSocket();
+ createSocket(authPayload);
// Keep win up-to-date.
backgroundMitt.on('window-active', (state: boolean) => {
const onOpen = (_event: WebSocket.OpenEvent) => {
console.log("WS:Connected to WS Server!");
-
if (openCallback) openCallback();
}
setTimeout(createSocket, 1000)
}
- const createSocket = () => {
+ const createSocket = (authPayload: {
+ token: string;
+ crimataId: string;
+ }) => {
if (socketUrl)
socket = new WebSocket(socketUrl)
// Add listeners.
- socket.addEventListener("open", onOpen)
+ socket.addEventListener("open", (_event: WebSocket.OpenEvent) => {
+ socket.send(JSON.stringify({
+ key: authPayload.token,
+ crimata_id: authPayload.crimataId
+ }));
+ })
socket.addEventListener("message", onServerMessage)
socket.addEventListener("close", onClose)
socket.addEventListener("error", onError)