Skip to content
This repository has been archived by the owner on May 1, 2020. It is now read-only.

スタンプの新規作成後、sseが止まる #934

Open
sapphi-red opened this issue Jun 29, 2019 · 6 comments
Open

スタンプの新規作成後、sseが止まる #934

sapphi-red opened this issue Jun 29, 2019 · 6 comments
Labels

Comments

@sapphi-red
Copy link
Contributor

稀にこれが起きてその後sse(?)が止まる
二度目以降(?)のService Worker Registered!のあとに発生

code: "messaging/use-sw-before-get-token"
message: "Messaging: You must call useServiceWorker() before calling getToken() to ensure your service worker is used. (messaging/use-sw-before-get-token)."
stack: "FirebaseError: Messaging: You must call useServiceWorker() before calling getToken() to ensure your service worker is used. (messaging/use-sw-before-get-token).↵    at t.useServiceWorker (https://www.gstatic.com/firebasejs/4.9.0/firebase-messaging.js:6:13514)↵    at https://q.trap.jp/js/chunk-d1c3c634.e07afe9b.js:7:47960"
@sapphi-red
Copy link
Contributor Author

スタンプの新規作成後に確実に起こる

@sapphi-red sapphi-red changed the title 稀にsseが止まる スタンプの新規作成後、sseが止まる Aug 3, 2019
@sapphi-red
Copy link
Contributor Author

設定画面から戻るボタンを押すタイミング

@sapphi-red
Copy link
Contributor Author

根本としてpages/Main.vueは一度しか開かれないことを想定されてつくられている(?)のに、Settings.vueへページ遷移(DOMの総とっかえ)してそこから戻ってくることが問題?

@sapphi-red
Copy link
Contributor Author

Uncaught (in promise) FirebaseError: Messaging: The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used. (messaging/use-sw-before-get-token).
    at t.useServiceWorker (https://q.trap.jp/js/chunk-vendors.3e49f4a4.js:857:1072)
    at https://q.trap.jp/js/chunk-7cc1fd24.6fef861f.js:1:47614
t  @  index.cjs.js:611
e.create  @  index.cjs.js:634
t.useServiceWorker  @  index.esm.js:1860
(anonymous)  @  Main.vue:90
Promise.then (async)    
(anonymous)  @  Main.vue:86
u  @  runtime.js:45
(anonymous)  @  runtime.js:271
forEach.e.<computed>  @  runtime.js:97
i  @  asyncToGenerator.js:5
a  @  asyncToGenerator.js:27
(anonymous)  @  asyncToGenerator.js:34
t  @  _export.js:36
(anonymous)  @  asyncToGenerator.js:23
a  @  Main.vue:26
ot  @  vue.esm.js:1863
$n  @  vue.esm.js:4222
e._init  @  vue.esm.js:5011
s  @  vue.esm.js:5157
an  @  vue.esm.js:3292
init  @  vue.esm.js:3123
n  @  vue.esm.js:3310
d  @  vue.esm.js:5983
p  @  vue.esm.js:5930
O  @  vue.esm.js:6221
x  @  vue.esm.js:6324
(anonymous)  @  vue.esm.js:6487
Dn.e._update  @  vue.esm.js:3951
r  @  vue.esm.js:4069
or.get  @  vue.esm.js:4482
or.run  @  vue.esm.js:4557
Qn  @  vue.esm.js:4313
(anonymous)  @  vue.esm.js:1989
ft  @  vue.esm.js:1915
Promise.then (async)    
at  @  vue.esm.js:1942
gt  @  vue.esm.js:1999
nr  @  vue.esm.js:4405
or.update  @  vue.esm.js:4547
me.notify  @  vue.esm.js:739
set  @  vue.esm.js:1064
(anonymous)  @  vue-router.esm.js:2748
(anonymous)  @  vue-router.esm.js:2747
Ve.updateRoute  @  vue-router.esm.js:2174
(anonymous)  @  vue-router.esm.js:2037
(anonymous)  @  vue-router.esm.js:2159
r  @  vue-router.esm.js:1843
r  @  vue-router.esm.js:1850
Me  @  vue-router.esm.js:1854
(anonymous)  @  vue-router.esm.js:2154
r  @  vue-router.esm.js:1843
(anonymous)  @  vue-router.esm.js:1847
(anonymous)  @  vue-router.esm.js:2139
(anonymous)  @  vue-router.esm.js:1921
d  @  vue-router.esm.js:2120
r  @  vue-router.esm.js:1846
r  @  vue-router.esm.js:1850
(anonymous)  @  vue-router.esm.js:1847
(anonymous)  @  vue-router.esm.js:2139
(anonymous)  @  index.js:204
u  @  runtime.js:45
(anonymous)  @  runtime.js:271
forEach.e.<computed>  @  runtime.js:97
i  @  asyncToGenerator.js:5
a  @  asyncToGenerator.js:27
(anonymous)  @  asyncToGenerator.js:34
t  @  _export.js:36
(anonymous)  @  asyncToGenerator.js:23
(anonymous)  @  index.js:66
d  @  vue-router.esm.js:2120
r  @  vue-router.esm.js:1846
r  @  vue-router.esm.js:1850
Me  @  vue-router.esm.js:1854
Ve.confirmTransition  @  vue-router.esm.js:2147
Ve.transitionTo  @  vue-router.esm.js:2034
t.push  @  vue-router.esm.js:2365
(anonymous)  @  vue-router.esm.js:2779
ft.push  @  vue-router.esm.js:2778
back  @  Index.vue:85
ot  @  vue.esm.js:1863
n  @  vue.esm.js:2188
Ni.i._wrapper  @  vue.esm.js:7559

下から順に参考コード
https://github.com/traPtitech/traQ-UI/blob/7da0b571088fd8bc3b6be1a99fd0b6f3d5bdb222/src/pages/Setting/Index.vue#L78-L94
https://github.com/traPtitech/traQ-UI/blob/7da0b571088fd8bc3b6be1a99fd0b6f3d5bdb222/src/router/index.js#L191-L206
https://github.com/traPtitech/traQ-UI/blob/7da0b571088fd8bc3b6be1a99fd0b6f3d5bdb222/src/pages/Main/Main.vue#L88-L118

@sapphi-red
Copy link
Contributor Author

MESSAGE_CREATEDのSSEイベントは受け取っている
sseのon内は実行されていない

@sapphi-red
Copy link
Contributor Author

Main.vueにSSEの登録があるからPageが変わるとき(設定とかに遷移するとき)に切れる
main.jsに持ってくればたぶん直る(serviceworkerも同様)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants