mirror of
https://gitlab.com/futo-org/fcast.git
synced 2025-07-06 22:19:50 +00:00
Receivers: Change sessionMap to map type
This commit is contained in:
parent
5782fcc3ca
commit
65edb0d40e
2 changed files with 12 additions and 10 deletions
|
@ -10,7 +10,7 @@ export class TcpListenerService {
|
||||||
|
|
||||||
private server: net.Server;
|
private server: net.Server;
|
||||||
private sessions: FCastSession[] = [];
|
private sessions: FCastSession[] = [];
|
||||||
private sessionMap = {};
|
private sessionMap = new Map();
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
if (this.server != null) {
|
if (this.server != null) {
|
||||||
|
@ -47,11 +47,12 @@ export class TcpListenerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect(sessionId: string) {
|
disconnect(sessionId: string) {
|
||||||
this.sessionMap[sessionId]?.socket.destroy();
|
this.sessionMap.get(sessionId)?.socket.destroy();
|
||||||
|
this.sessionMap.delete(sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getSessions(): string[] {
|
public getSessions(): string[] {
|
||||||
return Object.keys(this.sessionMap);
|
return [...this.sessionMap.keys()];
|
||||||
}
|
}
|
||||||
|
|
||||||
private async handleServerError(err: NodeJS.ErrnoException) {
|
private async handleServerError(err: NodeJS.ErrnoException) {
|
||||||
|
@ -64,11 +65,11 @@ export class TcpListenerService {
|
||||||
const session = new FCastSession(socket, (data) => socket.write(data));
|
const session = new FCastSession(socket, (data) => socket.write(data));
|
||||||
session.bindEvents(this.emitter);
|
session.bindEvents(this.emitter);
|
||||||
this.sessions.push(session);
|
this.sessions.push(session);
|
||||||
this.sessionMap[session.sessionId] = session;
|
this.sessionMap.set(session.sessionId, session);
|
||||||
|
|
||||||
socket.on("error", (err) => {
|
socket.on("error", (err) => {
|
||||||
Main.logger.warn(`Error from ${socket.remoteAddress}:${socket.remotePort}.`, err);
|
Main.logger.warn(`Error from ${socket.remoteAddress}:${socket.remotePort}.`, err);
|
||||||
socket.destroy();
|
this.disconnect(session.sessionId);
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on("data", buffer => {
|
socket.on("data", buffer => {
|
||||||
|
|
|
@ -11,7 +11,7 @@ export class WebSocketListenerService {
|
||||||
|
|
||||||
private server: WebSocketServer;
|
private server: WebSocketServer;
|
||||||
private sessions: FCastSession[] = [];
|
private sessions: FCastSession[] = [];
|
||||||
private sessionMap = {};
|
private sessionMap = new Map();
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
if (this.server != null) {
|
if (this.server != null) {
|
||||||
|
@ -46,11 +46,12 @@ export class WebSocketListenerService {
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect(sessionId: string) {
|
disconnect(sessionId: string) {
|
||||||
this.sessionMap[sessionId]?.close();
|
this.sessionMap.get(sessionId)?.close();
|
||||||
|
this.sessionMap.delete(sessionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public getSessions(): string[] {
|
public getSessions(): string[] {
|
||||||
return Object.keys(this.sessionMap);
|
return [...this.sessionMap.keys()];
|
||||||
}
|
}
|
||||||
|
|
||||||
private async handleServerError(err: NodeJS.ErrnoException) {
|
private async handleServerError(err: NodeJS.ErrnoException) {
|
||||||
|
@ -63,11 +64,11 @@ export class WebSocketListenerService {
|
||||||
const session = new FCastSession(socket, (data) => socket.send(data));
|
const session = new FCastSession(socket, (data) => socket.send(data));
|
||||||
session.bindEvents(this.emitter);
|
session.bindEvents(this.emitter);
|
||||||
this.sessions.push(session);
|
this.sessions.push(session);
|
||||||
this.sessionMap[session.sessionId] = session;
|
this.sessionMap.set(session.sessionId, session);
|
||||||
|
|
||||||
socket.on("error", (err) => {
|
socket.on("error", (err) => {
|
||||||
Main.logger.warn(`Error.`, err);
|
Main.logger.warn(`Error.`, err);
|
||||||
session.close();
|
this.disconnect(session.sessionId);
|
||||||
});
|
});
|
||||||
|
|
||||||
socket.on('message', data => {
|
socket.on('message', data => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue