7
votes

iPhone & Notifications: Nombre maximal de notifications?

J'ai une application iPhone envoi de notifications et tout fonctionne bien ... sauf parfois :)

Permettez-moi d'expliquer: j'utilise un script PHP assez simple pour envoyer les notifications (à l'aide de la méthode stream_context_create ) mais que certains utilisateurs m'ont dit qu'ils ne reçoivent pas certaines notifications. Apparemment, je peux rencontrer des cas où je dois envoyer jusqu'à 50 000 notifications dans une minute et je pense que cela pourrait être le problème. J'utilise un seul flux pour envoyer toutes les notifications.

Quelqu'un d'entre vous a-t-il rencontré un tel problème? Dois-je me diviser dans plusieurs ruisseaux? Y a-t-il des informations sur le nombre maximum de notifications que je peux envoyer dans un flux?

Merci:)

edit 1

"vitesse" n'est pas le problème ici: je suis capable de pousser toutes mes notifications à Apple dans un délai d'une minute (je peux avoir des problèmes à l'avenir si mon nombre d'utilisateurs cultivait, mais c'est bon guichet automatique). Le problème que je vois ici est que Apple pourrait me considérer comme un spammeur ou quelque chose et ne livre pas toutes mes 50 000 notifications: / Vous avez des gars-là avoir une idée de la façon dont je peux vous en assurer?


3 commentaires

Avez-vous envisagé de créer un script de démon et poussant des notifications sur une pile que le démon gère un rythme approprié? Si vos notifications peuvent arriver une cinq minutes de retard, je pense que c'est une solution appropriée sans changer de langue / etc.


Juste édité mon post, j'ai réalisé que ma question n'était pas vraiment exacte


Eh bien, je sais que nous avions les mêmes problèmes avec des APNS. Je pense que nous l'avons résolu en utilisant une file d'attente et que nous n'envoyons qu'une quantité coiffée de notifications par secondes à Apple. Je ne sais pas exactement ce que ce casquette est, mais vous voudrez peut-être examiner cela et expérimenter un peu.


4 Réponses :


1
votes

Je préférerais développer le code pour envoyer les notifications dans C. PHP, étant un langage de script, ne peut pas (probablement) garantir la vitesse requise pour gérer des notifications 50k par minute. De plus, vous aurez peut-être besoin d'un serveur très extrêmement approvisionné avec des processeurs de dernière génération et de beaucoup de mémoire. En effet, pour répondre aux QO dont vous avez besoin, vous devez être en mesure d'envoyer environ 14 notification par seconde. Je doute que PHP est en mesure de faire face à ce taux.

Dans le passé, j'avais mon propre fournisseur et mon QoS était beaucoup moins que celui dont vous avez besoin. Ensuite, j'ai décidé de passer à un fournisseur de services commerciaux, au dirigeable urbain. J'ai trouvé ce service fonctionne comme un charme. Aucun des utilisateurs n'a signalé une notification manquante. Vous devez payer pour cela, mais la manipulation de ces choses par vous-même peut s'avérer être un problème incroyable.


1 commentaires

Juste édité mon post, j'ai réalisé que ma question n'était pas vraiment exacte



5
votes

J'ai demandé à un représentant des développeurs Apple à ce sujet et on nous a dit qu'il n'y avait pas de limites de taux et que le système n'avait jamais abandonné une notification.

(C'était il y a 12 mois, lorsque la poussée était encore relativement nouvelle, elle peut donc avoir changé de stratégies depuis que)


1 commentaires

Juste un commentaire: lors de l'envoi du contenu du flux à Apple, chaque fois qu'un jeton non valide est détecté, la connexion est arrêtée. Alors assurez-vous chaque fois que vous envoyez vos données que l'écriture () a réussi.



0
votes

S'il y a une défaillance dans le flux de notification (c'est-à-dire un mauvais jeton), quelques jetons qui suivent cela sont manqués. Cela a été mon expérience, alors j'envoie un jeton à la fois. Pas plus d'échecs, autres que le mauvais jeton.


0 commentaires

0
votes

J'ai rencontré exactement le même problème, mais avec beaucoup moins de pousses par ruisseau. Dans mon cas, j'ai poussé tous mes messages, environ 250, sur le même flux, et aucun ne serait livré. Il semble qu'un mauvais jeton semble causer l'échec, mais jusqu'à présent, je ne suis pas certain de ce qui constitue un mauvais jeton.

J'ai lu ailleurs qui poussant des messages à l'aide des jetons de distribution dans un environnement sandbox et de pousser des messages à l'aide de jetons Sandbox dans l'environnement de distribution peut entraîner l'échec d'un courant, mais j'ai des jetons mixtes dans l'environnement et je n'ai pas manqué Messages, mais je ne faisais que pousser quelques messages dans un seul flux à l'époque.

Longue histoire courte: je pousse un message par flux et ça marche bien. Il faut sur l'ordre des secondes pour pousser 250 messages, ce qui semble terriblement inefficace, mais c'est juste une nuisance mineure pour moi.


0 commentaires