diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-03-07 19:00:15 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-07 19:00:15 +0900 |
| commit | a227ef30e8bc8282605361b013d323bb3bbc4e7d (patch) | |
| tree | 8bd28f1d27a77e061e7b7f56f8794e483fe82f8f /src/web/app/common/scripts/streaming/home.ts | |
| parent | v3999 (diff) | |
| parent | oops (diff) | |
| download | sharkey-a227ef30e8bc8282605361b013d323bb3bbc4e7d.tar.gz sharkey-a227ef30e8bc8282605361b013d323bb3bbc4e7d.tar.bz2 sharkey-a227ef30e8bc8282605361b013d323bb3bbc4e7d.zip | |
Merge pull request #1197 from syuilo/othello
Othello
Diffstat (limited to 'src/web/app/common/scripts/streaming/home.ts')
| -rw-r--r-- | src/web/app/common/scripts/streaming/home.ts | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/web/app/common/scripts/streaming/home.ts b/src/web/app/common/scripts/streaming/home.ts new file mode 100644 index 0000000000..1f110bfd3b --- /dev/null +++ b/src/web/app/common/scripts/streaming/home.ts @@ -0,0 +1,57 @@ +import * as merge from 'object-assign-deep'; + +import Stream from './stream'; +import StreamManager from './stream-manager'; +import MiOS from '../../mios'; + +/** + * Home stream connection + */ +export class HomeStream extends Stream { + constructor(os: MiOS, me) { + super('', { + i: me.token + }); + + // 最終利用日時を更新するため定期的にaliveメッセージを送信 + setInterval(() => { + this.send({ type: 'alive' }); + me.last_used_at = new Date(); + }, 1000 * 60); + + // 自分の情報が更新されたとき + this.on('i_updated', i => { + if (os.debug) { + console.log('I updated:', i); + } + merge(me, i); + }); + + // トークンが再生成されたとき + // このままではAPIが利用できないので強制的にサインアウトさせる + this.on('my_token_regenerated', () => { + alert('%i18n:common.my-token-regenerated%'); + os.signout(); + }); + } +} + +export class HomeStreamManager extends StreamManager<HomeStream> { + private me; + private os: MiOS; + + constructor(os: MiOS, me) { + super(); + + this.me = me; + this.os = os; + } + + public getConnection() { + if (this.connection == null) { + this.connection = new HomeStream(this.os, this.me); + } + + return this.connection; + } +} |