Notification Push vs Sockets Web pour la mise en œuvre d'une application de chat en temps réel?

Je cherche à construire une application de chat en temps réel pour iPhone (mais cette question s'applique également à Android et à d'autres appareils) fondamentalement, je veux que l'application reçoive des messages en temps réel tant qu'elle est ouverte et fermée, tout comme l'application "Message" de l'iPhone.

Quand il est fermé, je peux utiliser les services de notification push natifs comme APNS, et lorsque l'application est ouverte, je peux exécuter mon propre serveur websockets ou utiliser des fournisseurs tiers comme PubNub ou Pusher, ce que j'ai été faire en fait.

Ensuite, je me suis demandé: Pourquoi ne puis-je pas complètement compter sur APNS pour la messagerie en temps réel, à la fois pendant que l'application est ouverte et lorsqu'elle est fermée? Cela ressemble à une solution beaucoup plus propre car elle est pilotée par un serveur push. Quelqu'un pourrait-il m'éclairer? Grâce.

21
demandé sur Community 2014-03-30 01:07:13

1 réponses

APNS n'est pas fiable à 100%. C'est dans la plupart des cas, mais pas à 100%. Il est également pas aussi rapide qu'un service dédié que vous offririez. Parfois, les messages push prennent plus d'une minute pour arriver. Vous devez tenir compte de ceux-ci et le prendre en considération dans toute conception que vous venez avec. Si vous pouvez vivre avec ces limitations, vous pouvez en effet compter sur les APN pour mettre à jour votre client. De plus, avec iOS7, une application pourrait se réveiller en arrière-plan, récupérer des données et mettre à jour son interface utilisateur afin que l'utilisateur soit présenté avec une mise à jour de l'application.

Tout en parlant de performance, être capable de gérer une multitude de connexions ouvertes et de les entretenir simultanément n'est pas aussi simple que cela puisse paraître, donc en fonction de vos ressources, vous ne pouvez pas être en mesure de fournir un meilleur temps de disponibilité de service que les APN D'Apple, de sorte que les limitations ci-dessus, bien

Je pense que le mieux serait, puisque vous devez implémenter le support push de toute façon, pour implémenter APNS seulement, et voir si cela vous satisfait et vos clients. Rappelez-vous que les serveurs APNS sandbox (debug) sont plus lents que les serveurs APNS de production normaux, alors testez avec les versions de version pour voir les implications réelles des performances de l'APNS uniquement. Si sur la route, vous remarquez que le service fourni ne suffit pas, vous ne pouvez mettre en œuvre d'autres services.

23
répondu Leo Natan 2014-03-29 21:17:55