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

Ext JS / Sencha Discussion :

ExtJS4.2.1 - Notification entre deux users dans une plateforme ?


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut ExtJS4.2.1 - Notification entre deux users dans une plateforme ?
    Bonjour à tous,

    Je voudrais avoir votre avis sur une option que je dois ajouter à ma plateforme écrite avec ExtJS4.
    État de l'art:
    * Depuis son ordinateur, un utilisateur se connecte sur son compte C1 grâce à ses identifiants (bdd)
    * Depuis un autre ordinateur, un autre utilisateur se connecte sur compte C2 grâce à ses identifiants (bdd)
    * Bien sûr la bdd est commune et contient une table USERS

    Maintenant, moi C1, je désire envoyé un message à C2, la première idée qui vient, c'est de créer une table "tampon"
    qui contiendra le Message. Mon application aura une action de lecture de la table "Tampon" gérée par un Timer (tous les X minutes par exemple).

    C2 aura donc un message d'alerte indiquant le Message avec suppression du message dans la table Tampon par la suite.

    Bon ok ça c'est la bonne vieille méthode mais avec ExtJS existe-t-il d'autres moyens ?
    Ou bien cette méthode est-elle suffisante ?

    Plus complexe, et au final, je voudrais envoyer non pas un message mais un JSON (des datas en fait).

    D'avance merci pour vos conseils,

    PS: en attendant, je continue ma fouille sur le net, et n'hésiterai pas à répondre à mon propre message.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    Voici déjà un bon exemple de l'affichage des fenêtres de notification:

    http://www.eirik.net/Ext/ux/window/Demo.html

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    oui il existe d'autre façon de faire.
    mais tout d'abord un commentaire sur la solution que tu envisage.
    si tu stocke les messages des utilisateurs il te faut envisager le cas où le destinataire n'est pas présent sur le réseau.
    soit tu ne le garde pas, soit tu le stocke pour le délivrer plus tard. au bout de combien de temps tu le considère comme trop vieux ? lorsque tu l'as délivré doit tu le virer de la base le marquer lut etc.

    c'est effectivement une solution qui marche et qui est très largement répandue dans les forum par exemple (lorsque tu envois des msg perso)

    une autre solution mais qui nécessite des ressources serveur.
    lorsque ton utilisateur se connecte tu ouvre un websocket (HTML5)
    tu lui envoie la liste des utilisateur connecté (ou le différentiel) à chaque fois qu'un utilisateur se connecte ou se déconnecte
    pour qu'il sache avec qui il peut dialoguer.
    lorsqu'il envoie un message à un utilisateur tu réceptionne le message sur le serveur et tu l'envoie dans le websocket de celui-ci.

    pour ça il te faut une serveur qui gère les websocket
    que tu place une map userconnecte=>websocket hors de la partie session de l'utilisateur (ressource commune)
    il faut aussi que tu gère la sécurité car tu vas faire passer des données de la session d'un utilisateur vers un autre.

    A+JYT

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Par défaut
    Salut Sekaijin,

    Merci pour ta réponse complète, j'ai mis mes commentaires ci-dessous.

    oui il existe d'autre façon de faire.
    mais tout d'abord un commentaire sur la solution que tu envisage.
    si tu stocke les messages des utilisateurs il te faut envisager le cas où le destinataire n'est pas présent sur le réseau.
    soit tu ne le garde pas, soit tu le stocke pour le délivrer plus tard. au bout de combien de temps tu le considère comme trop vieux ? lorsque tu l'as délivré doit tu le virer de la base le marquer lut etc.

    c'est effectivement une solution qui marche et qui est très largement répandue dans les forum par exemple (lorsque tu envois des msg perso)
    Je pense que je vais choisir cette solution car la probabilité que mes utilisateurs soient connectés au même moment est très faible.
    Ma plate-forme n'a pas en fait vocation à faire de la communication en temps réel.

    Effectivement, j'ai commencé à réfléchir à toutes les étapes de gestions des messages, rien de trop compliqué techniquement juste bien établir les règles au départ.



    une autre solution mais qui nécessite des ressources serveur.
    lorsque ton utilisateur se connecte tu ouvre un websocket (HTML5)
    tu lui envoie la liste des utilisateur connecté (ou le différentiel) à chaque fois qu'un utilisateur se connecte ou se déconnecte
    pour qu'il sache avec qui il peut dialoguer.
    lorsqu'il envoie un message à un utilisateur tu réceptionne le message sur le serveur et tu l'envoie dans le websocket de celui-ci.

    pour ça il te faut une serveur qui gère les websocket
    que tu place une map userconnecte=>websocket hors de la partie session de l'utilisateur (ressource commune)
    il faut aussi que tu gère la sécurité car tu vas faire passer des données de la session d'un utilisateur vers un autre.
    Oui j'ai vu aussi cette solution, voici un lien sur Sencha Forum qui semble pas mal:
    http://www.sencha.com/forum/showthre...et-is-among-us!

    Il y a d'ailleurs pas mal de chose en tapant sur google les mots clés Extjs 4 websocket.

    Mais j'avoue qu'après lecture, je n'en pas réellement besoin, ou du moins cela serait comme utiliser une masse pour planter une punaise

    Voilà j'espère que ce post pour un peu éclairer les personnes comme moi qui planche sur ce sujet.

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

Discussions similaires

  1. Conflit entre deux js dans une page HTML (inclure plusieurs js)
    Par karinemariejeanne dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/06/2007, 16h31
  2. recherche entre deux dates dans une requête
    Par emmanuel4945 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/11/2006, 21h42
  3. calcul entre deux champs dans une table
    Par pomar dans le forum Access
    Réponses: 7
    Dernier message: 29/11/2006, 18h27
  4. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  5. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36

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