はじめに
Webプッシュのチュートリアルをやってハマったところのメモ
GCMを使ってwebプッシュを実装します
ハマったところ
endpointが出力されない
Subscribe to Push Notifications
という章でlocalサーバーのアプリにアクセスしてendpointを出力するところがあります。
が、いつも開発につかっているアカウントでendpointが出力されなかった
ブラウザはChromeのversionは52.0.2743.82 (64-bit)
(現行の最新版)
この時点での状況
- Chromeの他のアカウントでは出力された
- Firefoxだと出力された
状況としては↑だったので、アカウントに紐付いている設定かなと思いendpointが出力されているアカウントと極力同じ設定に変更した
やったこと
- Chromeを再起動
- 有効にしていた拡張機能をgoogleDocs系以外無効にする
- 以下のデータを削除
- ダウンロード履歴
- Cookieなどのサイトデータやプラグインデータ
- キャッシュされた画像とファイル
- ホストされているアプリデータ
- コンテンツライセンス
そして、スーパーリロード(Shift+Command+r)
endpointがやっぱり出力されない・・
同じことにハマっている人はいないのかと検索してみたけど見つからず
最終的に1回Chromeからアカウントを切断してみた
アカウントに紐付いている設定等が邪魔しているならChromeのデータ全部消そうと思ったので
切断する際に
□ 履歴、ブックマーク、設定、このデバイスに保存されているその他のChromeデータも削除する
にチェックしてから切断
もう一度Chromeにアカウントを追加してアプリにアクセスしてみたら
endpointでた・・・
なぜだ。
一か八かでやったことがうまく言ってしまったので原因はわかりませんでした。
Pushこない
Send a request from the command line for GCM to push a message
この章でターミナルでcurlを叩いてpushを通知するところが出てきます。
この通りにやってみましたが、push通知こない・・・
こないなあと思っていたらいつの間にかConsoleに
Push message >PushEvent {data:hogehoge...}
とcurlを叩いた回数分でてきていて、どうやら遅延して届いたようだ
もう一回やってみたら、プッシュ通知の通知もちゃんときた。遅延して。
?
調べたのですが理由はわからず・・まだ調べ途中です
どなたかなぜ遅延してしまうか教えて下さい
ちなみに、Chrome Canaryを使ったらすぐ通知がきました
とりあえず今ハマったところはこのくらい