IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Notification en temps réel


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut Notification en temps réel
    Bonjour bonjour,
    je viens vers vous pour essayer de résoudre une problématique que je rencontre sur mon projet.
    Pour simplifier un peu les choses, j'ai un serveur (springboot) qui fait certains calcules, et en fonction des résultats, j'aimerais notifier certains utilisateurs en temps réel.
    J'ai donc une application Android codée en Kotlin.

    Dans un premier temps je pensais simplement créer une table Alert dans ma base Postgresql, qui contient simplement un attribut "isActive" l'id de l'utilisateur à notifier, et le code du message.
    Mais cela veut dire que l'application doit tourner en permanence en arrière plan sur tous les smartphones, et faire des requêtes très fréquentes. J'ai peur que ça consomme beaucoup de ressources.

    Je me suis ensuite pencher sur le système "Messagerie Cloud Firebase". Mais ça m'embête un peu d'ajouter une couche externe à mon application, d'autant que j'ai déjà une base Postgresql, et que je ne suis pas certain qu'on puisse notifier que certains utilisateurs ?

    Y a t'il une meilleure solution pour ce genre de tâche ?

    D'avance merci et belle journée,

    Bebuck

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Bonjour,

    La bonne méthode est de passer par firebase. C'est le standard que tout le monde utilise.
    Tu peux évidemment notifier un seul appareil parmi X , ou que ceux abonné à un "channel" particulier , etc.

    L'avantage de cette solution comme tu l'as déjà remarqué c'est qu'elle est parfaitement optimisée.
    L'inconvénient c'est que Google fait évoluer assez souvent sa gestion des notifications et que tu vas être tributaire de ces évolutions (j'ai réecris tout ou partie de la gestion de notification 3x en 10 ans de vie d'une app).
    Coté serveur si tu utilises un des langages supporté par le SDK l'intégration sera très facile, si ce n'est pas le cas ca va être plus difficile si tu veux utiliser le tout dernier protocole et non le legacy (qui lui est simple).

    Tu peux tout à fait faire ton propre système , mais ca veux dire que tu vas devoir garder une socket ouverte en permanence pour pouvoir pusher les notifications quand elle arrive. Ca veux deux donc dire que tu dois mettre en place une communication , la maintenir , définir un protocole , être scalable si jamais tu viens avoir bcp d'utilisateur, etc ...
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Merci pour la réponse.
    Je vais me pencher plus sérieusement sur Firebase alors.
    J'avais peur de ne pas pouvoir envoyer de messages à des utilisateurs précis, mais j'ai trouvé un tuto (plus trop à jour, mais compréhensible) pour envoyer un message depuis une application SpringBoot :

    https://christopher-neve.com/fr/envo...n-spring-boot/

    Je vais donc tester ceci, et si tout fonctionne, je vais me poser la question de migrer mon serveur d'authentification KeyCloack vers Firebase Authentication, histoire de mutualiser un peu les services de mon app.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Si ton backend est en java tu peux directement utiliser le SDK firebase : https://firebase.google.com/docs/admin/setup

    Ca va te simplifier la vie au niveau de l'envoi de notification. Ca revient basiquement à construire le message et appeler send() : https://firebase.google.com/docs/clo...g/send-message
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    584
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 584
    Points : 181
    Points
    181
    Par défaut
    Le back-end et bien en Java, donc j'ai un end-point pour envoyer les messages. Mais comme je ne peux pas utiliser le système de topics, je pense que je vais devoir stocker dans un attributs transcient les tokens firebase des utilisateurs pour envoyer les messages aux bons de vices

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Oui c'est ce que je fait (pas en java).
    Dès que j'ai un téléphone qui s'abonne , je stock son token en faisant le lien avec l'utilisateur concerné. Et ensuite je vais récupérer ce token pour notifier la personne concernée.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Twitter ajoute les notifications en temps réel dans sa version Web
    Par Stéphane le calme dans le forum Actualités
    Réponses: 2
    Dernier message: 17/04/2014, 11h42
  2. Notification en temps réel
    Par madi116 dans le forum Langage
    Réponses: 4
    Dernier message: 27/05/2012, 20h55
  3. [Débutant] notification en temps réel d'insertion linq to sql, c#
    Par zikog dans le forum C#
    Réponses: 3
    Dernier message: 14/09/2011, 10h58
  4. Notifications en temps réel (gmail like)
    Par muad'dib dans le forum ALM
    Réponses: 2
    Dernier message: 16/05/2011, 14h04
  5. Réponses: 2
    Dernier message: 26/08/2007, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo