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