show explicit ids and urls in stats

This commit is contained in:
marlon-erler
2026-04-02 21:25:39 +00:00
parent 57f79e16df
commit 1f6e5c613e
7 changed files with 604 additions and 1583 deletions
+9 -8
View File
@@ -51,10 +51,6 @@ export const serversConnectedAsClient = new Set<WS>();
export const serversConnected = new Set<WebSocket>();
export const serversDisconnected = new Set<string>();
export function getServerCount() {
return serversConnected.size + serversConnectedAsClient.size;
}
export function trackConnection(ws: WS) {
clientsConnected.add(ws);
}
@@ -82,13 +78,18 @@ export function forgetSubscription(
}
// AUDIT
export function getWebSocketStats(): [string, number][] {
export function getWebSocketStats(): [string, string|number][] {
function listString<T>(list: Set<T>|Map<string, T>, map: (x: T) => string): string {
if (list.size == 0) return "<none>";
return [...list.values()].map(map).join("\n");
}
return [
["channels", subscriptionMap.subscribersPerChannel.size],
["clients connected", clientsConnected.size],
["mailboxes", mailboxes.size],
["servers connected", getServerCount()],
["servers disconnected", serversDisconnected.size],
["mailboxes", listString(mailboxes, x => x.id)],
["servers connected", listString(serversConnected, x => x.url)],
["servers disconnected", listString(serversDisconnected, x => x)],
];
}