Passer au contenu principal
Toutes les collectionsQuestions générales
Comment maintenir une session utilisateur active lorsque l'application du lecteur est inactive?
Comment maintenir une session utilisateur active lorsque l'application du lecteur est inactive?
Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus d’une semaine

Les expirations sont gérées côté serveur. La seule façon de savoir si une session a expiré est d'essayer d'effectuer un appel côté serveur.

Si l'application est en cours d'exécution, la librairie enverra automatiquement un message de pulsation au serveur pour maintenir la connexion active (même si vous n'envoyez pas de requêtes brainCloud).

Si l'utilisateur quitte l'application, appelez Reconnect() [ https://getbraincloud.com/apidocs/apiref/#wrapper-reconnect ] lorsqu'il revient (et attendez la réponse avant de poursuivre les requêtes brainCloud).

Cela obligera brainCloud à utiliser l'anonymat + profileId stocké par le wrapper pour établir une nouvelle session. (Vous n'avez pas besoin d'inviter l'utilisateur à se reconnecter, quel que soit le type d'authentification qu'il utilise.)

Vous avez essentiellement 3 options pour garantir que la session utilisateur reste active lorsque l'utilisateur a quitté l'application:

1 - Optimiste - Supposons que la session est toujours bonne, mais soyez prêt à gérer une session expirée et appelez Reconnect() lorsque cela se produit. <- Dans une certaine mesure, vous devez le faire de toute façon.

2 - Pessimiste - Supposons que chaque fois que l'utilisateur "revient" à l'application, la session a probablement expiré et appelez Reconnect() <- le code le plus sûr et le plus simple, bien que cela puisse utiliser quelques appels d'API supplémentaires.

3 - Hybride - enregistrez le moment où l'utilisateur *quitte* l'application, et s'il revient disons moins de 10 minutes plus tard, ignorez Reconnect() et supposez que tout va bien. > 10 minutes, faites Reconnect() car la session a probablement expiré. (Remarque: il est difficile d'être plus déterministe que cela - car les battements de cœur se produisent en arrière-plan - et vous ne savez pas combien de temps s'est écoulé depuis l'envoi du dernier battement de cœur).

Pour être juste, le plus simple est de faire la deuxième solution.

Avez-vous trouvé la réponse à votre question ?