From 98dca7b7ac16c4ea38f808bc20d4a71a3acb3355 Mon Sep 17 00:00:00 2001 From: syuilo Date: Mon, 13 Nov 2017 03:47:06 +0900 Subject: 同じ接続を使いまわすように MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/common/scripts/server-stream-manager.ts | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/web/app/common/scripts/server-stream-manager.ts (limited to 'src/web/app/common/scripts') diff --git a/src/web/app/common/scripts/server-stream-manager.ts b/src/web/app/common/scripts/server-stream-manager.ts new file mode 100644 index 0000000000..e3f03ae40b --- /dev/null +++ b/src/web/app/common/scripts/server-stream-manager.ts @@ -0,0 +1,39 @@ +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; + } + } +} -- cgit v1.2.3-freya