問題タブ [apn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
545 参照

python - NodeJS APN プッシュ重複通知

皆さん、私は最近nodejsをサードパーティのAPNサーバーとして使用しようとしており、node-apnモジュール( https://github.com/argon/node-apn )を使用しています。同じ通知 (つまり、同じアラート) を短時間 (5 分間で 5 つの通知など) にプッシュすると、Apple の APN サーバーが私の通知を「キャッシュ」したように見えることがわかりました。通常どおり別のメッセージをプッシュすると (メッセージ 5 分などの通常の速度で)、「キャッシュされた」メッセージがデバイスに何度も届きます。

node-apn モジュールのコードを少し掘り下げたところ、Apple への TLS(SSL) が作成され、ストリーム データ (nodejs のバッファ) が Apple のサーバーに送信されることがわかりました。すべて問題ないようです。 、しかし、メッセージは複製されただけです(短時間でプッシュした場合)。また、Python の lib APNSWrapper( https://code.google.com/p/apns-python-wrapper ) も試してみます。コードは同じことを行うだけで、問題は発生しません。

彼らがアップルのサーバーに送信するものは、次のようにまったく同じです。

[command, token.length, token.content, payload.length, payload.content]

command、token.length、payload.length は 2 バイトの unsigned int ですbig-endian。python lib は format!HB32s58sでストリーム全体を構築します。32 と 58 は単なる長さです。! はビッグエンディアン、H は unsigned char(1 バイト)、B は unsigned int(2 バイト) を意味します。32s は 32 バイトの文字列を意味し、58 は 58 バイトの文字列を意味します。

そして、nodejs tls 接続は同じことを行っているだけです。すべての長さは で書かれていcleartextStream.writeUInt16BE()ます。ここでの BE はビッグエンディアンを意味します。

私はバイトごとにテストして、送信するものがまったく同じであることを確認しました。メッセージを受信するためにSSLサーバーを作成し、同じデータを受信しました(バイトごとにチェックしました)。したがって、アップルのサーバーが受信したものはまったく同じである必要があります。しかし、彼らは異なる行動をとっているだけです。私はここで何か提案を待っています、事前に感謝します!

0 投票する
2 に答える
9158 参照

azure - Azure Notification Hub が APN の .p12 をアップロードできない

APN の .p12 をアップロードできません。これは私が受け取ったエラーメッセージです。このエラーの原因は何ですか?

0 投票する
2 に答える
1554 参照

ios - ローカル通知によるプッシュ通知の追加振動

着信プッシュ通知で電話が複数回振動するようにします。

この動作を実現するために、application:didReceiveRemoteNotification:fetchCompletionHandler:メソッドでいくつかのテキストなしのローカル通知 (1 秒後、2 秒後、...) をスケジュールしました。

これは、私が開発に使用しているデバイスと他のいくつかの電話でうまく機能しますが、すべての電話で機能するわけではありません。

すべてのデバイスで動作するようにするにはどうすればよいですか?

0 投票する
1 に答える
1280 参照

openssl - APN の -CApath を使用しない OpenSSL

.pem 証明書を検証し、Apple の APN ゲートウェイに接続して、正しく機能しているかどうかを確認しようとしています。ただし、実行すると

次のようなエラーが表示されます。

私の OpenSSL ディレクトリは次の場所にあります。

したがって、コマンド ライン (-CApath) でディレクトリを明示的に指定すると、突然動作しているように見えます。

を実行してみましc_rehash /usr/lib/ssl/certsたが、何も変わりませんでした。私は何を間違っていますか?これがプッシュ通知が送信されない理由であると思われるため、毎回 -CApath を指定せずに実行したいと思います。