Apple デバイスにバッチで通知を送信したい (たとえば、バッチで 1.000 デバイス トークン)。メッセージが APNs に配信されたことを確認できないようです。
コードサンプルは次のとおりです。
ssl_connection(bundle_id) do |ssl, socket|
device_tokens.each do |device_token|
ssl.write(apn_message_for device_token)
# I can check if there is an error response from APNs
response_has_an_error = IO.select([socket],nil,nil,0) != nil
# ...
end
end
主な問題は、ssl_connection が確立された後にネットワークがダウンした場合です。
ssl.write(...)
エラーが発生することはありません。接続がまだ機能していることを確認する方法はありますか?
2 つ目の問題は、ssl.write と APN からの Ready エラー応答の間の遅延です。最後のメッセージが送信された後、タイムアウト パラメータを IO.select に渡すことができます。たぶん、1.000 バッチを数秒間待つのは問題ありませんが、異なる bundle_id に対して 1.000 メッセージを送信する必要がある場合はどうでしょうか?