Chat en Ajax/PHP/MySQL Beaucoup de ressources
#1
Posté 12 décembre 2011 - 10:54
Je me tente à la création d'un chat en Ajax et sotckage des messages dans une base de données.
DOnc très simplement j'ai créé 3 div :
1) liste des membres
2) liste des conversations entre membres
3) liste des messages liés à la conversation.
Jusque la rien de très compliqué, tout fonctionne très bien mais je me pose la question de la méthode utilisée.
Dans ces 3 div, j'utilise un setTimeout à 1 milliseconde pour que les changement soient quasiment instantanés.
Cependant, j'ai l'impression que cette méthode prend énormément de ressources et de plus, le fait que la div se recharge toutes les millisecondes, cela empêche 1/10 le clic sur un lien dans ce div.
Qu'en pensez vous ?
La fonction setTimeout est elle une bonne méthode ?
Comment avez vous développé votre chat ?
Un grand merci par avance.
Aymeric
#2
Posté 12 décembre 2011 - 11:51
Ni php côté serveur, ni javascript côté client, ne sont adaptés pour faire un chat.
Le seul truc que tu peux faire, avec php/javascript, c'est plutôt une sorte de "tag wall", ou de "shout box", mais pas un vrai chat.
Donc pour un tag wall/shout box, effectivement, tu peux utiliser le setTimeout de javascript. Mais cetainement pas tous les millièmes de seconde ! Disons une fois toutes les deux ou trois secondes... maximum... tout dépend du contexte (si le chat est sur une page dédiée, tu peux le faire plus fréquemment, mais s'il est sur ta page d'accueil, il faut y aller doucement) (ça dépend aussi du nombre de clients connectés, du serveur, etc)
#3
Posté 12 décembre 2011 - 12:03
#4
Posté 12 décembre 2011 - 13:57
Ernestine, le 12 décembre 2011 - 11:51, dit :
Le seul truc que tu peux faire, avec php/javascript, c'est plutôt une sorte de "tag wall", ou de "shout box", mais pas un vrai chat.
Merci pour votre réponse.
Je suppose que non, mais auriez vous une autre piste à m'indiquer pour le développement d'un chat ? Captain_torche parle des WebSockets, je me penche dessus.
Cordialement.
Aymeric
#5
Posté 12 décembre 2011 - 14:18
#6
Posté 12 décembre 2011 - 15:05
Je ne savais pas que c'était prévu ! C'est cool
aodot, le 12 décembre 2011 - 13:57, dit :
Ça dépend, tu veux faire quoi exactement comme style de chat ?
#7
Posté 12 décembre 2011 - 15:10
Ernestine, le 12 décembre 2011 - 15:05, dit :
J'ai un site avec des membres et je souhaite créer un chat dans lequel les membres puissent parler entre eux (un peu style facebook quoi).
Je ne sais pas quelle méthode utiliser...
Merci par avance.
Aymeric
#8
Posté 12 décembre 2011 - 15:35
aodot, le 12 décembre 2011 - 15:10, dit :
Si ma mémoire est bonne (ça fait un bail que j'ai fermé mon compte facebook), sur facebook, ce n'est pas un chat classique, c'est plutôt ce qu'on pourrait appeler une "messagerie instantanée". On peut y discuter en privé entre "amis", mais il n'y a pas de "salon général" où n'importe qui peut parler avec n'importe qui d'autre.
Par ailleurs, et toujours si ma mémoire est bonne, cette messagerie instantanée sur facebook fonctionne en bas de page : c'est à dire qu'on peut continuer de discuter tout en surfant sur le site. Il n'y a donc pas une page dédiée au chat (ce qui complique la chose sur certains points et la facilite sur d'autres).
Il faudrait vraiment que tu commences par te faire une idée plus précise de ce que tu souhaites faire. Un chat n'est pas quelque chose de simpliste à mettre en place, alors si ton cahier des charges se résume à « un peu style facebook quoi », tu ne seras pas en mesure de choisir la bonne solution.
Donc déjà, il faut que tu décides si le chat doit être sur une page dédiée, ou s'il reste en bas de page et utilisable tout en naviguant sur le site, car l'approche est complètement différente.
#9
Posté 12 décembre 2011 - 22:15
Je crois que le chat suivant (http://chat.developpez.com/) est basé sur le projet open-source AnoChat (php/javascript) et le résultat est excellent.
#10
Posté 13 décembre 2011 - 08:42
https://blueimp.net/ajax/
@++
#11
Posté 03 février 2012 - 10:39
Node.js
Cela permet de communiquer par socket entre le client et le serveur. A approfondir


Haut












