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

Conception Web Discussion :

Conception affichage temps réel


Sujet :

Conception Web

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Conception affichage temps réel
    Bonjour a tous,
    Voila, je souhaiterai mettre en place un système d'affichage en temps réel d'entrée dans la base de donnée pour chaque utilisateurs.
    Pour illustrer mon besoin, je vais prendre l'exemple de se qui existe sur Facebook:
    - L'utilisateur peut voir en temps réel (sans rafraîchissement de la page) des données le concernant qui entre dans la base de donnée (enregistrement d'autres personnes par exemple).
    - Il ne voit que les éléments qui le concerne.

    C'est donc quasiment les système d'affichage en temps réel des publications Facebook qui m'intéresse.

    Pour cela j'ai plusieurs questions:

    Tout d'abord je pense que la technologie a utiliser est SSE (Serve Sent Events) de HTML5 qui permet donc de faire du push du serveur vers le client.
    Cependant peut on inclure un système d'authentification pour SSE afin de cibler les éléments pour chaque utilisateurs?

    Après niveau serveur, je pense que node.js est le plus adapté afin d'éviter de prendre trop de ressources notamment en boucles infinis.

    Et enfin, comment avertir le serveur que de nouvelles entrées, concernant un utilisateur connecté, ont été enregistré dans la base de données?

    Merci d'avances pour votre aide.

    Cordialement.

    edit: après reflexion, je pense que facebook utilise des requêtes AJAX pour son système d'actualisation des publications. Or ce n'est pas se dont j'ai besoin, j'ai besoin de vrai temps réel.

  2. #2
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Avant d'aller plus loin dans ta réflexion, une question est déterminante pour le reste : As tu des exigences au niveau de la compatibilité du navigateur sur ton site web ?

    En fait, quand tu aura répondu à cette question, la suite en découlera presque. Si tu veux que 90% des navigateurs soit compatible, tu peux oublier toutes les nouvelles techno dons SSE, et tu devra forcement passer par une techno type ajax. Si tu n'a pas de contrainte de compatibilité, alors tu peux partir sur une techno HTML5 avec du push etc..

    Il vaux mieux se poser la question dans ce sens là.
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    tout d’abord merci pour ta réponse.
    Ensuite, mon objectif premier est vraiment l'affichage en temps réel, pour cela je souhaite mettre en place une des nouvelles technologies HTML5 qui le permettent.
    Dans les cas ou ces technologies ne sont pas supportés, je mettrais en place un système en AJAX de pseudo temps réel.

    Ce dont j'ai besoin c'est du SSE (le serveur envoi des informations au client/navigateur) mais je ne sais pas s'il est possible de cibler le client, dans les exemples que j'ai vu, je n'ai vu que du broadcast.

    Si ce n'est pas le cas, je pense dont utiliser les Websockets.

    Mon gros problème c'est surtout, comment avertir le serveur (donc SSE ou WebSockets), qui sera surement en node.js, que de nouvelles entrées ont été enregistrées dans la base de données pour qu'il puisse les envoyer aux clients ciblés, sans faire de requête toutes les x secondes.

    Cordialement.

  4. #4
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 386
    Points : 3 531
    Points
    3 531
    Billets dans le blog
    1
    Par défaut
    Bah c'est dans le principe des websockets, je veux dire c'est le fonctionnement même des websockets.

    - Le client va se connecter au serveur.
    - Le serveur va écouter tout les clients connectés, si un client lui envoie un ordre, il le réceptionne, et il est capable de renvoyer un événement avec des données à tout les clients connectés.

    Donc, c'est quand tu va recevoir un ordre que tu peux faire l'enregistrement en base de données, mais théoriquement tu n'a pas besoin de base de données, hé oui !
    Consultant et développeur full-stack spécialiste du Web
    faq jQuery - règles du forum - faqs web

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Oups, je viens de voir que je me suis mal formulé et que j'ai oublié un détail important.
    Les données que je souhaite afficher sont des données qui sont enregistrées non pas par un client mais par le serveur (tache Cron).
    Il faudrait que le script de la tâche cron avertisse le serveur (peut être en passant par les websockets comme un client) que des nouvelles entrées ont été enregistrés.
    Il y a t'il d'autres solutions plus propre?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Plus propre, ce serait que le cron ne se contente pas de notifier le serveur qu'il y a de nouvelles données, mais qu'il dise au serveur quelles sont les nouvelles données à mettre en BDD, et que ce soit le serveur qui s'occupe de les y mettre. Il aura donc toute l'information sur quelles sont les données insérées et si la transaction BDD s'est bien passée. Ce qui lui permet d'envoyer ces mêmes infos aux clients concernés, sans les redemander à la BDD.

    Si c'est impossible, plus propre, ce serait d'avoir la BDD elle-même qui notifie le serveur qu'elle a reçu de nouvelles données. Au moins le serveur a pas besoin de chercher quelles sont ces nouvelles données, et il réagit à une transaction validée par la BDD. ... Mais encore faut-il que le moteur de BDD ait une fonction de ce genre et qu'elle soit pas trop dure à intégrer.

    Dans tous les cas, le cron a peu de raison d'utiliser les websockets pour parler au serveur. D'abord c'est un protocole compliqué si c'est pas le navigateur qui s'y colle, et ensuite, ça ne sert à rien si on cherche pas un échange initié par le serveur, ou qui soit pratiquement constant. Une simple requête HTTP POST parfaitement normale serait amplement suffisante.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [AJAX] Comment faire => resultat de mysql en affichage temps réel
    Par noellepere dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/09/2007, 09h55
  2. Affichage temps-réel d'une séquence d'image
    Par Copros dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 30/05/2007, 15h13
  3. [AJAX] Affichage temps réel.
    Par AMS78 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/01/2007, 20h38
  4. Architecture: ré-affichage temps réel
    Par SGJ dans le forum Général Conception Web
    Réponses: 12
    Dernier message: 20/06/2006, 13h51
  5. Réponses: 19
    Dernier message: 20/12/2005, 10h03

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