Skip to content

Commit

Permalink
cleanup code
Browse files Browse the repository at this point in the history
  • Loading branch information
huytran17 committed May 28, 2024
1 parent 2530171 commit ee97036
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,44 +15,48 @@ export default function makePrivateAdminHandler({
initialAdminNsp: InitialAdminNsp;
}) {
return function privateAdminHandler({ io }: { io: Server }) {
const online_users = {};

const admin_nsp = initialAdminNsp({ io });

admin_nsp.on(SocketEvents.CONNECT, (socket) => {
socket.on(ClientEvents.ONLINE, async ({ user_id }: IUserPayload) => {
const user_ids = Array.from(new Set(Object.values(online_users)));
if (!user_ids.includes(user_id)) {
await adminDb.update({
_id: user_id,
is_online: true,
});
}

online_users[socket.id] = user_id;
admin_nsp.emit(ServerEvents.ONLINE, { user_id });
});
try {
const online_users = {};

const admin_nsp = initialAdminNsp({ io });

admin_nsp.on(SocketEvents.CONNECT, (socket) => {
socket.on(ClientEvents.ONLINE, async ({ user_id }: IUserPayload) => {
const user_ids = Array.from(new Set(Object.values(online_users)));
if (!user_ids.includes(user_id)) {
await adminDb.update({
_id: user_id,
is_online: true,
});
}

online_users[socket.id] = user_id;
admin_nsp.emit(ServerEvents.ONLINE, { user_id });
});

socket.on(SocketEvents.DISCONNECT, async () => {
const user_id = online_users[socket.id];
socket.on(SocketEvents.DISCONNECT, async () => {
const user_id = online_users[socket.id];

delete online_users[socket.id];
delete online_users[socket.id];

const user_ids = Array.from(new Set(Object.values(online_users)));
const user_ids = Array.from(new Set(Object.values(online_users)));

const is_user_still_online = user_ids.includes(user_id);
if (is_user_still_online) {
return;
}
const is_user_still_online = user_ids.includes(user_id);
if (is_user_still_online) {
return;
}

admin_nsp.emit(ServerEvents.OFFLINE, { user_id });
admin_nsp.emit(ServerEvents.OFFLINE, { user_id });

await adminDb.update({
_id: user_id,
last_online_at: new Date(),
is_online: false,
await adminDb.update({
_id: user_id,
last_online_at: new Date(),
is_online: false,
});
});
});
});
} catch (error) {
console.error(error);
}
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,45 +18,49 @@ export default function makePrivateClientHandler({
initialAdminNsp: InitialAdminNsp;
}) {
return function privateClientHandler({ io }: { io: Server }) {
const online_users = {};
try {
const online_users = {};

const client_nsp = initialClientNsp({ io });
const admin_nsp = initialAdminNsp({ io });
const client_nsp = initialClientNsp({ io });
const admin_nsp = initialAdminNsp({ io });

client_nsp.on(SocketEvents.CONNECT, (socket) => {
socket.on(ClientEvents.ONLINE, async ({ user_id }: IUserPayload) => {
const user_ids = Array.from(new Set(Object.values(online_users)));
if (!user_ids.includes(user_id)) {
await userDb.update({
_id: user_id,
is_online: true,
});
}
client_nsp.on(SocketEvents.CONNECT, (socket) => {
socket.on(ClientEvents.ONLINE, async ({ user_id }: IUserPayload) => {
const user_ids = Array.from(new Set(Object.values(online_users)));
if (!user_ids.includes(user_id)) {
await userDb.update({
_id: user_id,
is_online: true,
});
}

online_users[socket.id] = user_id;
admin_nsp.emit(ServerEvents.ONLINE, { user_id });
});
online_users[socket.id] = user_id;
admin_nsp.emit(ServerEvents.ONLINE, { user_id });
});

socket.on(SocketEvents.DISCONNECT, async () => {
const user_id = online_users[socket.id];
socket.on(SocketEvents.DISCONNECT, async () => {
const user_id = online_users[socket.id];

delete online_users[socket.id];
delete online_users[socket.id];

const user_ids = Array.from(new Set(Object.values(online_users)));
const user_ids = Array.from(new Set(Object.values(online_users)));

const is_user_still_online = user_ids.includes(user_id);
if (is_user_still_online) {
return;
}
const is_user_still_online = user_ids.includes(user_id);
if (is_user_still_online) {
return;
}

admin_nsp.emit(ServerEvents.OFFLINE, { user_id });
admin_nsp.emit(ServerEvents.OFFLINE, { user_id });

await userDb.update({
_id: user_id,
last_online_at: new Date(),
is_online: false,
await userDb.update({
_id: user_id,
last_online_at: new Date(),
is_online: false,
});
});
});
});
} catch (error) {
console.error(error);
}
};
}

0 comments on commit ee97036

Please sign in to comment.