mizzkey/src/web/app/common/scripts/server-stream-manager.ts

40 lines
766 B
TypeScript
Raw Normal View History

import Connection from './server-stream';
import uuid from './uuid';
export default class ServerStreamManager {
private connection = null;
/**
*
*/
private users = [];
public getConnection() {
if (this.connection == null) {
this.connection = new Connection();
}
return this.connection;
}
public use() {
// ユーザーID生成
const userId = uuid();
this.users.push(userId);
return userId;
}
public dispose(userId) {
this.users = this.users.filter(id => id != userId);
// 誰もコネクションの利用者がいなくなったら
if (this.users.length == 0) {
// コネクションを切断する
this.connection.close();
this.connection = null;
}
}
}