Sharkey/src/web/app/common/scripts/streaming/home-stream.ts

32 lines
766 B
TypeScript
Raw Normal View History

2017-06-09 01:03:54 +09:00
import Stream from './stream';
2018-02-26 19:23:53 +09:00
import MiOS from '../../mios';
2017-06-09 01:03:54 +09:00
/**
* Home stream connection
*/
2017-11-17 01:24:44 +09:00
export default class Connection extends Stream {
2018-02-26 19:23:53 +09:00
constructor(os: MiOS, me) {
2017-06-09 01:03:54 +09:00
super('', {
i: me.token
});
2017-08-30 17:45:23 +09:00
// 最終利用日時を更新するため定期的にaliveメッセージを送信
setInterval(() => {
this.send({ type: 'alive' });
2018-02-26 18:31:55 +09:00
me.last_used_at = new Date();
2017-08-30 17:45:23 +09:00
}, 1000 * 60);
2017-11-17 01:24:44 +09:00
// 自分の情報が更新されたとき
2018-02-21 15:30:03 +09:00
this.on('i_updated', i => {
Object.assign(me, i);
});
2017-08-28 23:47:43 +09:00
2017-11-17 01:24:44 +09:00
// トークンが再生成されたとき
// このままではAPIが利用できないので強制的にサインアウトさせる
2017-11-17 03:28:37 +09:00
this.on('my_token_regenerated', () => {
2017-08-28 23:47:43 +09:00
alert('%i18n:common.my-token-regenerated%');
2018-02-26 19:23:53 +09:00
os.signout();
2017-08-28 23:47:43 +09:00
});
2017-06-09 01:03:54 +09:00
}
}