aboutsummaryrefslogtreecommitdiff
path: root/src/server/websocket.ts
diff options
context:
space:
mode:
authorjameshu111 <boo15869@gmail.com>2023-03-06 16:14:57 -0500
committerjameshu111 <boo15869@gmail.com>2023-03-06 16:14:57 -0500
commit0f3f5fa7f63dddbfbf095f65b05f89cf27cbc6cf (patch)
tree17402272d9e1d74330fa4547cff9870be3f74544 /src/server/websocket.ts
parent536e1ed3f847b0e7343c1cf9eb7fc0c97818e171 (diff)
/stats handler
Diffstat (limited to 'src/server/websocket.ts')
-rw-r--r--src/server/websocket.ts17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/server/websocket.ts b/src/server/websocket.ts
index 9b91a35a6..e556ecc17 100644
--- a/src/server/websocket.ts
+++ b/src/server/websocket.ts
@@ -1,4 +1,4 @@
-import { blue } from 'colors';
+import { blue, magenta } from 'colors';
import * as express from 'express';
import { createServer, Server } from 'https';
import { networkInterfaces } from 'os';
@@ -12,6 +12,7 @@ import { GoogleCredentialsLoader, SSL } from './apis/google/CredentialsLoader';
import YoutubeApi from './apis/youtube/youtubeApiSample';
import { initializeGuest } from './authentication/DashUserModel';
import { Client } from './Client';
+import { DashStats } from './DashStats';
import { Database } from './database';
import { DocumentsCollection } from './IDatabase';
import { Diff, GestureContent, MessageStore, MobileDocumentUploadContent, MobileInkOverlayContent, Transferable, Types, UpdateMobileInkOverlayPositionContent, YoutubeQueryInput, YoutubeQueryTypes } from './Message';
@@ -20,7 +21,7 @@ import { resolvedPorts } from './server_Initialization';
export namespace WebSocket {
export let _socket: Socket;
- const clients: { [key: string]: Client } = {};
+ export const clients: { [key: string]: Client } = {};
export const socketMap = new Map<SocketIO.Socket, string>();
export let disconnect: Function;
@@ -97,6 +98,13 @@ export namespace WebSocket {
console.log('received bye');
});
+ socket.on('disconnect', function () {
+ let currentUser = socketMap.get(socket);
+ if (!(currentUser === undefined)) {
+ DashStats.logUserLogout(socketMap.get(socket), socket);
+ }
+ });
+
Utils.Emit(socket, MessageStore.Foo, 'handshooken');
Utils.AddServerHandler(socket, MessageStore.Bar, guid => barReceived(socket, guid));
@@ -176,7 +184,12 @@ export namespace WebSocket {
const currentdate = new Date();
const datetime = currentdate.getDate() + '/' + (currentdate.getMonth() + 1) + '/' + currentdate.getFullYear() + ' @ ' + currentdate.getHours() + ':' + currentdate.getMinutes() + ':' + currentdate.getSeconds();
console.log(blue(`user ${userEmail} has connected to the web socket at: ${datetime}`));
+ console.log(magenta(`currently connected: ${JSON.stringify(clients)}`));
+ // console.log(magenta('socket map below'));
+ // console.log([...socketMap.entries()]);
+ printActiveUsers();
socketMap.set(socket, userEmail + ' at ' + datetime);
+ DashStats.logUserLogin(socketMap.get(socket), socket);
}
function getField([id, callback]: [string, (result?: Transferable) => void]) {