Jump to content

Réaliser un chatbox simple


Aenoa

Recommended Posts

Bonjour à tous,



dans le cadre d'un projet personnel, je désire réaliser une chatbox (et ne pas utiliser un quelconque CMS de chat) en couplant MySQL, AJAX/JQuery et PHP.



Mon objectif serait d'avoir une page d'index, contenant le chat principal. Celui-ci se verrait recevoir du contenu (si il y en a du nouveau) toute les secondes, via un controller écrit en PHP qui intéragis avec la DB, Ce controller est appelé via Jquery depuis la page d'index. Pour l'histoire du controller, je me suis basé sur cette publication d'Ernestine, en l'adaptant à ma sauce.



Je bloque actuellement sur le côté Jquery: Comment faire pour que le nouveau contenu soit ajouté en haut de la div (au lieu d'en bas comme le ferais un .append) SANS que l'intégralité du chat soit rechargé (si un utilisateur sélectionne du texte, ça serait dommage qu'il voie sa sélection disparaître d'elle même...)



N'ayant pas beaucoup de temps à consacrer à cela (Travail de fin d'étude, examens, ...) je n'ai pas beaucoup de patience et le web ne m'aide pas trop =/



Merci d'avance!


Link to comment
Share on other sites

Faut pas être refractaire au progrès comme ça :D



PLusieurs avantages :


  • tu n'envoies pas de requêtes inutiles sur le serveur - l'interval que tu es obligé de définir pour récupérer les messages - (et ton client est déjà en JS, d'un certain point de vue)

  • instantanéïté des messages

Dans la source que je t'ai passé, il y a un proxy swf qui gère les sockets lorsque le navigateur ne les gère pas (IE < 10), pas d'excuse de portabilité !



Un inconvénient : il faut gérer les déconnexions des clients et faire des tentatives de reconnexion lorsque ça déconne !


Link to comment
Share on other sites

Tu installes d'abord nodeJS, ensuite tu édites le fichier JS du serveur avec tes paramètres (généralement le port d'écoute, je l'ai fait à l'arrache, donc dans le code), les fichiers du client aussi, il doit y avoir l'IP d'un de mes servuers dessus.



Ensuite tu lances le serveur en SSH :



nodejs chat-server.js

Et c'est tout !


Link to comment
Share on other sites

Il faut donc du serveur dédié pour faire cela, en mutualisé tu oublies, je serais donc plutôt du même avis que Aenoa, de l'ajax et du php / mysql


Link to comment
Share on other sites

J'ai achevé ma chatbox en AJAX et PHP, mais maintenant que j'y penses, sur le long terme, avec beaucoup d'utilisateurs, ça sera pas viable.


le NodeJS sera-t-il viable à forte affluence ? Cela ne fera-t-il pas trop de requêtes, sachant que je désire stocker les messages de chat en DB pour un suivi ?


N'existe-t-il pas un moyen d'avoir un chat efficace à forte affluence et ne demandant pas trop de requêtes, sans forcément devoir utiliser un aspect client/serveur requierant un SSH ?


Link to comment
Share on other sites

ça sera pas viable.

Non smile.gif

NodeJS sera-t-il viable à forte affluence.

Oui, même très forte.

Pour tes logs, tout dépend comment tu veux les exploiter par la suite.

As tu réellement besoin de SQL ? (car tu peux aussi faire des logs simples ( genre echo "machin" >> chat.log ), 1 fichier de log par room, par exemple (sauf à espionner les chatteurs, pas trop d'intérêt, en général on conserve juste ce genre de truc au cas ou...)

En SQL avec nodejs, les seules requêtes que tu feras seront des requêtes d'insertion (pour l'historique, ce que tu peux eviter avec des fichiers de log).

Après, même en ajax, tu peux nettement limiter les requetes SQL, mais tu n'éviteras jamais les requêtes AJAX repétées (touts les secondes pour un truc à peu pres correct), donc à terme, c'est pas viable ( autant installer loic directement sur les clients wink.gif ).

PS : bon anniv

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...