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

PHP & Base de données Discussion :

Notifications HTML5 / HTML5 SSE / Websockets


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Notifications HTML5 / HTML5 SSE / Websockets
    Bonjour.

    J'ai développé une application intranet de gestion de l'activité des salariés, en PHP, serveur WAMP.

    En gros Jean attribue à Marie une activité, la documente, et Marie l'exécute, la passe à Paul, etc...

    Pour que tout cela soit efficient les utilisateurs doivent recevoir des notifications, du type "Jean t'as attribué une nouvelle activité", ou "Marie a fini l'activité Photocopier le manuel de PHP".

    Actuellement cela se fait de la manière suivante; chaque INSERT ou UPDATE est analysé, et au besoin un mail est envoyé avec les informations nécessaires.

    Mon client cependant me demande que ces notifications ne soient pas conditionnées par le bon vouloir d'un provider/serveur de mail.

    D'où l'idée d'utiliser les notifications d'HTML 5. Une exemple ici: http://www.pubnub.com/blog/html5-des...n-broadcasting

    Première solution, le client de Jean qui fait la modification (INSERT ou UPDATE) analyse le tout, et si c'est nécessaire génère une notification sur le client de Marie.

    Deuxième solution, le client de Jean fait la modification (INSERT ou UPDATE), le serveur détecte la modification dans la base MySQL, l'analyse, et au nécessaire envoie une notification au client de Marie.

    Dans les deux cas je ne voit pas comment m'y prendre.

    Quelqu'un a une idée ?

    Merci.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Avec du PHP pur coté serveur c'est compliqué mais pas fondamentalement infaisable.

    Une première solution envisageable est l'utilisation des websockets à l'aide pourquoi pas de phpwebsocket. ça suppose de disposer d'un environnement compatible POSIX (Linux par exemple) et de l'extension PCNTL pour PHP ainsi que de PHP >= 5.3.0.

    Sinon, une solution intermédiaire que j'ai utilisé par le passé est de mettre les messages dans un spooler qui est lu par long pooling coté client avec AJAX.

  3. #3
    Membre chevronné
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 284
    Points : 2 160
    Points
    2 160
    Par défaut
    Bonjour,

    Sinon tu as l'ancienne méthode.
    Lorsque Jean termine une tache tu stocke un message dans une table spécifique avec l'ID de Marie.

    Lorsque Marie se connecte sur sa page une petite routine check s'il y a un message pour elle dans la table et l'affiche si besoin puis le supprime ou l'archive pour le pas le réafficher la prochaine fois.
    C'est possible à chaque connexion mais on peut imaginer à chaque rechargement de la page ou une routine ajax toutes les 30 secondes ou bien un bouton actualiser les messages etc...

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci pour les suggestions. Je crois que je vais faire ça "à l'ancienne", en stockant les notifications dans une table. Comment fait-on une routine ajax ? Avez-vous un exemple de code pour interroger mySQL ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 284
    Points : 2 160
    Points
    2 160
    Par défaut
    En fait tu interroges pas directement en sql.
    Tu interroges un fichier PHP ou tu passes des arguments et le PHP te renvoie un resultat (HTML ou XML).

    L'avantage de l'AJAX dans ton cas c'est que tu peux faire ça dans un timer toutes les x secondes.
    Si tu ne fais pas de timer et que tu fait une vérification au moment de la connexion ou lors du rechargement de la page dans ce cas AJAX ne sert à rien.

  6. #6
    Membre chevronné
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Novembre 2004
    Messages
    1 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 284
    Points : 2 160
    Points
    2 160
    Par défaut
    Pour compléter (le message a été envoyé sans que j'ai terminé) tu peux utiliser la bibliothèque jQuery.
    http://api.jquery.com/jQuery.ajax/

    Un exemple de code est fourni dans le lien.

    Pour ne pas t'embêter lorsque tu inclura le script jquery tu peux te servir de ce lien au lieu de le faire pointer sur ton serveur :
    http://ajax.googleapis.com/ajax/libs.../jquery.min.js

Discussions similaires

  1. [API HTML5] [Article] Un chat en HTML5 avec les websockets
    Par ornitho13 dans le forum Général JavaScript
    Réponses: 32
    Dernier message: 09/06/2017, 04h29
  2. [HTML 5] Un chat en HTML5 avec les websockets
    Par ornitho13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 22
    Dernier message: 09/11/2012, 18h14

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