Aenoa Posted May 12, 2013 Share Posted May 12, 2013 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 More sharing options...
captain_torche Posted May 12, 2013 Share Posted May 12, 2013 En jQuery, un simple prepend() devrait convenir Link to comment Share on other sites More sharing options...
SStephane Posted May 13, 2013 Share Posted May 13, 2013 NodeJS ! nodejs.zip Link to comment Share on other sites More sharing options...
Aenoa Posted May 13, 2013 Author Share Posted May 13, 2013 Merci Torche! ça m'aidera! SStephane: Je préfère éviter le NodeJS, l'idée d'une appli serveur + client JS ne me plait pas du tout :/ Link to comment Share on other sites More sharing options...
SStephane Posted May 13, 2013 Share Posted May 13, 2013 Faut pas être refractaire au progrès comme ça 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 More sharing options...
Dadou Posted May 13, 2013 Share Posted May 13, 2013 Et comment cela s'installe sur le serveur? Link to comment Share on other sites More sharing options...
SStephane Posted May 13, 2013 Share Posted May 13, 2013 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 More sharing options...
Dadou Posted May 13, 2013 Share Posted May 13, 2013 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 More sharing options...
Aenoa Posted May 20, 2013 Author Share Posted May 20, 2013 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 More sharing options...
SStephane Posted May 20, 2013 Share Posted May 20, 2013 ça sera pas viable. Non 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 ). PS : bon anniv Link to comment Share on other sites More sharing options...
Aenoa Posted May 20, 2013 Author Share Posted May 20, 2013 Bon, je vais passer du côté obscur du chat alors ! Merci encore ! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now