summaryrefslogtreecommitdiff
path: root/server/src/network/SessionManager.ts
blob: dbd436498ec737e19964b0dd356799a10e253ad7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { Session, SessionManager } from '.';

export class MemorySessionManager implements SessionManager {
  private sessions: Map<string, Session>;

  constructor() {
    this.sessions = new Map();
  }

  public getSessions() {
    return Array.from(this.sessions.keys());
  }

  public uniqueSessionId() {
    return crypto.randomUUID();
  }

  public getSession(id: string) {
    return this.sessions.get(id);
  }

  public putSession(id: string, session: Session) {
    return this.sessions.set(id, session);
  }

  public numSessions() {
    return this.sessions.size;
  }

  public removeSession(id: string) {
    this.sessions.delete(id);
  }
}