esup-multi

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Esup-Multi ne fournit pas d'application/de backend qui permet d'envoyer une notification en revanche elle intègre les appels nécessaires à des API qui permettent de s'intégrer à un outil externe pour la gestion des messages. 

Enfin Esup-Multi utilise firebase (Firebase Cloud Messaging https://firebase.google.com/docs/cloud-messaging?hl=fr) qui est un service externe google pour faire la notification push sur android et iOS (donc 1 seul service à utiliser).

Principe de fonctionnement

Récupération / suppression d'un token FCM

1- Lorsqu'un un utilisateur se connecte, Multi demande un token pour l’utilisateur et pour le périphérique (parce qu’un utilisateur peut avoir un smartphone + une tablette par exemple) à Firebase
2- Firebase renvoie donc un token que Multi retourne au connecteur pour enregistrement en base (c’est le /register)

3- Le /unregister est appelé à la déconnexion volontaire de l’utilisateur. On supprime alors le token (pour ne plus lui envoyer de push)

Image Modified

Envoi d'un message

Quand une application de notifications envoie un message
1- Elle envoie une requête sur l’API firebase pour tous les tokens de tous les utilisateurs destinataires (c’est ça qui fait le push sur les smartphones, tablettes etc)
2- Et elle stocke le message en base et pour chaque destinataire le caractère lu/non lu etc.

Image Modified

Réception d'un message

Enfin quand l’utilisateur reçoit la notification push, il ouvre l’application et récupère les messages via l'API de l'application de notification. Firebase n’intervient plus.


Image Modified

Création d'un compte FCM

Il faut donc ouvrir un compte sur Firebase, c’est gratuit et utiliser le service FCM (https://firebase.google.com/docs/cloud-messaging?hl=fr).

Il faut également paramétrer la connexion à FCM dans l’application cliente c’est expliqué ici (et il faudra aussi le faire du coté de l'application de notifications forcément)

Exemple d'implémentation

A l'Université de Lorraine, l'application qui permet d'envoyer des notifications (ULTIM) est une application NodeJS branchée sur une base MongoDb.

Schéma de la collection ‘enregistrement’ stockée en base
{
  _id: ObjectId
  ip: String
  platform: String
  token: String
  uid: String
  date: Double
}
  • _id : identifiant de l’objet

  • ip : ip depuis laquelle le périphérique demande l’enregistrement du token

  • platform (nullable) : plateforme depuis laquelle le périphérique demande l’enregistrement du token (Android, iOS, web, amazon-fireos)

  • token : token FCM à enregistrer

  • uid : login de l’utilisateur

  • date : date à laquelle l’enregistrement a lieu (en ms : new Date().getTime())

Schéma de la collection ‘notification’ stockée en base
{
  _id: ObjectId
  author: String
  channel: String
  title: String
  message: String
  state: String
  uid: String
  cd: Double
}

...