web-dev-qa-db-fra.com

Clarifier les connexions Firebase

Je suis un peu confus au sujet du modèle de tarification Firebase, une préoccupation particulière concerne les connexions ou plus précisément les connexions simultanées.

Prenons un exemple d'application mobile pour iOS appelée FanZONE:

L'utilisateur créera des groupes pendant les matchs de football. Ils commenteront le jeu réel et les commentaires seront immédiatement affichés sur l'écran de chaque membre.

Ce scénario signifie-t-il que chaque utilisateur qui participe aux commentaires/affichage compte pour une connexion?
Donc, si un groupe contient 100 utilisateurs qui suivent activement l'écran et commentent de temps en temps 100 connexions toutes les 90 minutes?
Qu'en est-il des utilisateurs qui ont l'application en arrière-plan et l'application vérifie toutes les 5 minutes le score. Cette connexion dure-t-elle également 90 minutes ou seulement une fraction de temps toutes les 5 minutes?

59
webduvet

Dans votre premier scénario - la réponse courte est oui. Tant que vos utilisateurs gardent l'écran sur lequel vous avez une connexion Firebase qui leur permet de commenter/lire les commentaires - vous aurez une connexion simultanée par écran.

Dans votre deuxième scénario - cela dépend de la façon dont vous développez votre application. L'API Firebase vous fournit les méthodes goOffline et goOnline (- https://www.firebase.com/docs/ios-api/Classes/Firebase.html#class_methods ) qui vous permettent de contrôler votre connexion. Si vous souhaitez vous déconnecter pendant 5 minutes, puis revenir brièvement en ligne pour vérifier les scores, puis vous déconnecter à nouveau, vous ne conserverez une connexion que pour une courte durée.

Les connexions simultanées ne sont que cela - des connexions établies en même temps. Donc, si 3 personnes utilisent votre application pour vérifier les scores, mais l'application de l'utilisateur 1 se connecte à 12h00 PM et la connexion dure 5 secondes, l'application de l'utilisateur 2 se connecte à 12 heures: 01 PM pendant 5 secondes, et l'application de l'utilisateur 3 est mise en ligne à 12h02 PM pendant 5 secondes, vous n'avez alors eu qu'une seule connexion simultanée).

Si en revanche, les 3 applications des utilisateurs sont mises en ligne à 12:00 PM pendant 5 secondes, vous aurez 3 connexions simultanées.

Vous pouvez potentiellement utiliser cette même stratégie goOffline/goOnline avec votre premier scénario, mais cela peut nuire à l'expérience si vos utilisateurs s'attendent à discuter d'un jeu en temps quasi réel.

65
Mike Pugh

En plus de l'excellente réponse de Mike P, voici quelques autres discussions sur le même sujet qui peuvent s'avérer pertinentes.

Depuis Firebase page de tarification :

Qu'est-ce qu'une connexion?

Une connexion est une connexion réseau ouverte à nos serveurs. C'est une mesure du nombre d'utilisateurs qui utilisent votre application ou votre site simultanément. Ce n'est pas la même chose (et est généralement beaucoup plus faible que) le nombre total de visiteurs sur votre site ou le nombre total d'utilisateurs de votre application. D'après notre expérience, 1 concurrent correspond à environ 1 400 visites mensuelles.

Notre Development Firebase a une limite stricte sur le nombre de connexions autorisées. Cependant, toutes les Firebases payantes sont "éclatables", ce qui signifie que l'utilisation n'est pas plafonnée et que vous êtes facturé pour tout dépassement. Nous mesurons les connexions pour les plans payants en fonction du 95e centile d'utilisation au cours du mois.

De cette discussion sur la liste de diffusion , par Andrew Lee (fondateur de Firebase):

Je vous recommande fortement de ne pas vous en soucier à moins que vous ne vous heurtiez réellement à nos limites ... la plupart des développeurs surestiment largement le nombre d'utilisateurs simultanés qu'ils auront. Une bonne règle de base est 1 simultanée = 1000 visites mensuelles pour le site Web typique. Pour les mobiles, le rapport entre installations et concurrents est parfois encore plus élevé (bien qu'il varie considérablement selon votre cas d'utilisation). Nos plans sont assez généreux en ce qui concerne les utilisateurs simultanés. En tant que point de données - notre propre site Web pourrait fonctionner confortablement sur le plan Firebase "gratuit" presque tous les jours. En fait, plus de 99,5% de toutes les Firebases n'ont jamais atteint la limite de 50 concurrents.

Donc, pour faire court, si vous travaillez sur un projet de loisir, vous n'atteindrez certainement pas notre limite gratuite de niveau 50 pour les concurrents. Si vous êtes une entreprise ou une application plus grande, j'espère que vous trouverez notre plan de 49 $/mois plus rentable que de passer du temps d'ingénierie pour savoir quand aller en ligne/aller en ligne pour minimiser ce nombre.

À très haut de gamme (énormes applications d'entreprise avec 10 000 concurrents et plus), nous proposons une tarification personnalisée qui a un taux par concurrent inférieur.

Un benchmarking utilisateur et test des connexions ici sur SO: Comment la connexion est calculée dans Firebase

Une autre question similaire ici sur SO: Comment les connexions simultanées sont-elles calculées

78
Kato