kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

iOSのhttp2ベースのpush通知ってあまり認知されていない感じですか

iOSのpush通知でいままではSSHでの接続でのデータ送信でしたが、http2ベースので送信が結構前にできるようになっています。

developer.apple.com

結構時間が立っているので、やり方をググれば出てるかと思いましたが、意外とないですね。

ちゃんと調べるとFCM(AndroidのPush通知の仕組み)でiOSの通知ができるからみんなこっちに切り替わってる感じですかね。

ということで、あまりやり方的な記事がなかったです。

ただやり方的な記事を書こうかとも思ったが、FCMにしたほうがみんな幸せになりそうだったので、自分で書いて不幸になった話を書きます。

かなり苦戦をしてプログラムを書いてみたのですが、結局運用できなかった話です。

C#でpush通知する人少ない??

通知部分をC#Windowsサービスで作成しており、元々の情報すら少ないのは事実でした。

それでも作っている人がいたので、参考にさせてもらいました。(感謝感謝)

GitHub - MonkeyBinBin/TokenbasedAPNsSample: token-based authentication APNS推播範例

よし、できることがわかればあとは突貫するだけです。頑張ろう。

C#でHTTP2通信が標準にない??

なかったです。あまり詳しくない言語のため、調べ方も下手なところはありますが、あるのかな。。。

オープンソースのライブラリ探してやっとできそうな状態でした。

Windows Server 2005ではできない??

JWTのトークンを作る際の、ハッシュアルゴリズムがなぜかない。

Windowsアップデートや.netも新しくしたけどExceptionが出る。

確かにもう古いのは事実だし、新しいサーバーを立てることになりました。

WindowsServer2016では無事に動作しました

スレッドにしたらリクエストがエラーになる

確実に自分が作成したプログラムの問題で、 HTTP2のため、非同期通信ということもあり、非同期かつスレッドの処理を自分が書いたことがないため、対処自体がわからず難航。(PHPerでC#弱いです)

もう問題解決する力もなく、諦めました。

ここまでで2週間ぐらいかかっているため、もう別言語がいい。。。とかC#の必要性ないのに合わせて作るのがいやになったのが本音です。

push通知のプログラムはGo言語が主流なのかな

PHPで記述するとcronで定期実行で書きそうです。PHPで無限ループでの処理は気持ち的にやりたくない。

Go言語で書かれているのは、結構みた感じがします。

どうやって呼び出し続けているんだろう。サービスの仕組みがあるのかな。

まぁ、無限ループかな。。。