|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Inscription : septembre 2009 Messages : 11 ![]() |
Bonjour
Voilà, je vous expose mon interrogation J'ai développé un petit Tchat utilisant du Long Polling. L'affichage du tchat fonctionne très bien. Quand les deux personnes se parlent, ça s'affiche. Partant de là, j'ai voulu implémenter une notification d'écriture : Quand une personne écrit, cela affiche chez l'autre qu'il est en train d'écrire. J'ai donc "bricolé" un système qui, allie js et php. L'algorithme de notification est le suivant : On mesure la taille de la chaîne dans le champ de saisie par l'utilisateur A. Si la taille de chaîne de saisie est supérieure à zéro, on modifie le fichier de notification de l'utilisateur A pour le mettre à 1. Sinon, On modifie le fichier de notification de l'utilisateur A pour le mettre à 0. L'algorithme de lecture est le suivant : On ouvre le fichier de notification de l'utilisateur ne correspondant pas à l'utilisateur qui lit le tchat. On retourne le contenu du fichier. Là, JS prend le relais. Si la valeur de réponse est un entier supérieur à 0 on affiche sur le navigateur l'icone de notification d'écriture. Pour faire tout ça, j'utilise une fonction AJAX qui va exécuter un bout de code php permettant d'interroger le contenu des fichiers sur le serveur et afficher la réponse sur le navigateur) Cette fonction est récursive, donc, se boucle sur elle-même toutes les 500ms (valeur arbitraire) afin de faire une notification instantanée. J'aurais aimé savoir si il n'existait pas une méthode plus "propre" plutôt que l'usine à gaz que j'utilise ^^ J'espère que vous avez saisi le système. Merci, ZeClubbeur |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : octobre 2009 Messages : 122 ![]() |
C'est effectivement la solution qui vient me viendrait à l'esprit pour faire ce que tu veux faire. C'est lourd, principalement parce qu'à la base, les sites internet ne sont pas fait pour ça (le serveur répond à un client web, il ne le contacte pas spontanément)
Il existe cependant un framework Javascript qui propose une telle solution : http://www.ape-project.org/ Je ne l'ai pas utilisé donc je en sais pas ce que ca vaut, mais la démo est impressionnante. |
|
|
00
|
|
|
#3 |
|
Inscription : septembre 2009 Messages : 11 ![]() |
Merci
En général, je fuis les framworks simplement parce que ça oblige à être dépendant des concepteur du framwork. Mais je regarderais bien comment ils font ^^ |
|
|
00
|
|
|
#4 | ||||||||
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Bonsoir,
Je ne comprends rien a ton affaire, car depuis longtemps je poste un tchat ou autant de visiteurs peuvent tchater en même temps, tout cela avec un AJAX classique enfantin et de l'autre coté le PHP qui gére MySql ! Je dirais presque qu'il sagirait d'un exemple type d'AJAX Bon alors dison du trés trés basique mais qui marchera de suite si tu le mets sur un site et invite un ami a tchater avec toi ! ou tout seul en local. Aprés cela a toi d'ajouter des trucs en plus, et mettre en forme ton environement ! deux tables basiques (pour le teste respectes les noms de tables et PHP...) Code :
ajax_tchat.php Code :
Code :
Code :
|
||||||||
|
10
|
|
|
#5 |
|
Inscription : septembre 2009 Messages : 11 ![]() |
Hello
Merci pour ta réponse, mais je n'utilise pas PDO ^^ Mon tchat fonctionne bien. J'utilise du long polling parce que je voulais apprendre à le faire et que cela me semblait plus approprié qu'un short polling. Pour savoir quels sont les gens avec qui on parle est guère plus dur ^^ En revanche, ce que je cherchais à faire, c'était obtenir une notification quand la personne avec qui je discute est en train d'écrire. En gros, quand l'autre tape sur son clavier, ça affiche, dans ma fenêtre de tchat, un truc du genre "machin est en train d'écrire" Et pour le moment, je n'ai pas trouvé plus simple que de faire une boucle qui va lire un fichier mis à jours par une fonction AJAX et afficher si l'utilisateur tape ou non quelque chose au clavier |
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() Christele Inscription : novembre 2009 Messages : 661 ![]() |
Te dire avant tout que PDO ou MySql ou autre, le script que je te propose s'applique a tout ce que l'on veut !
C' est au sens propre un model , ensuite tu l'adaptes ! Le mien dit qui est connecté, mais en trente seconde j'y ajoutes s'il tapes un message ou tout action que tu veux ! Le faite de lire dans un SQL avec PDO n'as aucun intéret par rapport au moteur AJAX et sa richesse. |
|
00
|
Copyright © 2000-2012 - www.developpez.com