1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-06-24 21:25:23 +00:00

Receivers: Change sessionMap to map type

This commit is contained in:
Michael Hollister 2025-04-29 14:36:16 -05:00
parent 5782fcc3ca
commit 65edb0d40e
2 changed files with 12 additions and 10 deletions

View file

@ -10,7 +10,7 @@ export class TcpListenerService {
private server: net.Server;
private sessions: FCastSession[] = [];
private sessionMap = {};
private sessionMap = new Map();
start() {
if (this.server != null) {
@ -47,11 +47,12 @@ export class TcpListenerService {
}
disconnect(sessionId: string) {
this.sessionMap[sessionId]?.socket.destroy();
this.sessionMap.get(sessionId)?.socket.destroy();
this.sessionMap.delete(sessionId);
}
public getSessions(): string[] {
return Object.keys(this.sessionMap);
return [...this.sessionMap.keys()];
}
private async handleServerError(err: NodeJS.ErrnoException) {
@ -64,11 +65,11 @@ export class TcpListenerService {
const session = new FCastSession(socket, (data) => socket.write(data));
session.bindEvents(this.emitter);
this.sessions.push(session);
this.sessionMap[session.sessionId] = session;
this.sessionMap.set(session.sessionId, session);
socket.on("error", (err) => {
Main.logger.warn(`Error from ${socket.remoteAddress}:${socket.remotePort}.`, err);
socket.destroy();
this.disconnect(session.sessionId);
});
socket.on("data", buffer => {

View file

@ -11,7 +11,7 @@ export class WebSocketListenerService {
private server: WebSocketServer;
private sessions: FCastSession[] = [];
private sessionMap = {};
private sessionMap = new Map();
start() {
if (this.server != null) {
@ -46,11 +46,12 @@ export class WebSocketListenerService {
}
disconnect(sessionId: string) {
this.sessionMap[sessionId]?.close();
this.sessionMap.get(sessionId)?.close();
this.sessionMap.delete(sessionId);
}
public getSessions(): string[] {
return Object.keys(this.sessionMap);
return [...this.sessionMap.keys()];
}
private async handleServerError(err: NodeJS.ErrnoException) {
@ -63,11 +64,11 @@ export class WebSocketListenerService {
const session = new FCastSession(socket, (data) => socket.send(data));
session.bindEvents(this.emitter);
this.sessions.push(session);
this.sessionMap[session.sessionId] = session;
this.sessionMap.set(session.sessionId, session);
socket.on("error", (err) => {
Main.logger.warn(`Error.`, err);
session.close();
this.disconnect(session.sessionId);
});
socket.on('message', data => {