restart socket session on renderer logout

This commit is contained in:
Enrique Hernandez 2021-03-10 21:11:25 -06:00
commit 61253f9cc2
6 changed files with 25 additions and 56 deletions

View file

@ -77,6 +77,11 @@ const onClientMessage = (_event, payload: ClientMessage): void => {
socket.send(JSON.stringify(payload));
}
const restart = () => {
auth = false;
initSession();
}
// Run every time we want to connect to backend.
export function initSession(): void {
@ -100,6 +105,10 @@ export function initSession(): void {
ipcMain.removeAllListeners('client-message');
ipcMain.on('client-message', onClientMessage);
// handle renderer logout event
ipcMain.removeAllListeners('logout');
ipcMain.on('logout', (_event, _payload: string) => restart());
// Connect to the backend.
socket.on('open', () => {
console.log('Connected to Crimata Servers.');
@ -130,14 +139,15 @@ export function initSession(): void {
socket.on('close', () => {
console.log('Connection droped! Restarting...');
auth = false;
initSession();
restart();
});
socket.on("message", onMessage);
}
export function sendAudio(content: string, uid: string): void {
const m = clientMessage("", content, uid);
socket.send(JSON.stringify(m));
}

View file

@ -29,6 +29,10 @@ process.once("loaded", () => {
ipcRenderer.send("client-message", message.content);
}
if (message.endpoint === "logout") {
ipcRenderer.send("logout", message.content);
}
});
});

View file

@ -35,9 +35,9 @@ import { RenderMessage , Annotation } from "@/types/message/index";
import MessageItem from "@/components/messageItem.vue";
import InputItem from "@/components/inputItem/inputItem.vue";
import useMitt from "@/modules/mitt";
import { useRouter } from "vue-router";
import { useAuth } from "@/modules/auth";
import { useIpc } from "@/modules/ipc";
export default defineComponent({
name: "Messenger",
@ -49,6 +49,7 @@ export default defineComponent({
setup() {
const { post } = useIpc();
const { logout } = useAuth();
const router = useRouter();
@ -73,6 +74,7 @@ export default defineComponent({
const onLogout = () => {
logout();
router.push({ name: "login" });
post("logout", "")
}
const { emitter } = useMitt();