Tchat en direct - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : Tchat en direct (/showthread.php?tid=366) |
RE: Tchat en direct - Viciousity - 10-01-2011 Ben BeaconPush c'est du sockets pour le web (d'ailleurs sa s'appelle websockets, la logique des anglais parfois ;P) RE: Tchat en direct - Sephi-Chan - 10-01-2011 Attention, Websockets (apporté par HTML5) est différent des sockets Unix. L'utilisation des sockets Unix est une solution intéressante, mais c'est assez complexe et nécessite une configuration bien particulière (naturellement, avec un serveur dédié). C'est performant mais pas forcément très propre puisque ça repose sur l'utilisation d'une page au chargement infini. Utiliser un service Web de push est aussi performant et ne nécessite pas de configuration particulière, en plus de ne pas consommer les ressources de notre serveur. C'est la solution la plus simple et efficace pour les créateurs amateurs sans gros moyens. Utiliser un système de push installé sur un serveur dédié (APE ou Juggernaut, par exemple) est également très efficace, mais souffre des défauts de la solution des sockets Unix en ce qui concerne les coûts et la configuration. C'est la solution la plus efficace dès lors qu'on dispose des connaissances et/ou des moyens. Sephi-Chan RE: Tchat en direct - Argorate - 11-01-2011 Pour ce qui est de la solution Ajax, j'aimerais rectifier certaines choses: Il n'est pas forcement necessaire d'avoir deux pages (jutilise la meme avec une variable qui switch) ça évite de disperser le code, mais ça c'est au bon plaisir de chacun. Et surtout, d'autre part, on est pas obligé de réafficher tout le block chat avec Ajax, on peut faire apparaitre uniquement les messages "inédit", cela permet de réduire les requetes serveurs inutile et les transferts d'octet tout aussi inutile, car redondant. Le problème en revanche c'est que le rafrech reste déclanché par un timer JS, et donc n'est pas "en direct", il faut attendre X seconde avant le rafrech... Du coup on a pas la meme impression que lorsqu'on est sur msn, ça parait plus sacader/lent, mais ça reste toujours mieux que rien Entre nous, la solution dont tu as expliqué le fonctionnement Sephi est aussi interésante que ce qu'elle a l'air complexe: En effet, AJAX <=> un appel d'une fonction JS toute simple et c'est terminer. Là en comparaison il nous faut du JSON, cURL, une histoire de clé secrete, le tout gérer par une classe php... Donc je ne peux pas etre d'accord avec toi quand tu dis que les solutions sont "équivalante" dans leur mise en place... Ca demande du temps pour faire ça quand meme, surtout au départ quand on ne maitrise pas la chose. Cependant quand on sait, tout est facile, j'en conviens RE: Tchat en direct - Sephi-Chan - 11-01-2011 Tu te trompes sur la complexité de la mise en place. Tu t'en fais tout un plat parce que c'est nouveau, mais c'est aussi simple que quand tu fais un appel pour écrire en base de données. La classe qui balance des requêtes HTTP via cURL, ce n'est pas toi qui va l'écrire. Tu vas simplement l'inclure et l'utiliser. Ici, c'est fait à but didactique. Quant à l'API Key, Si un rien te paraît compliqué, c'est parce que tu n'utilises pas assez de choses qui ne viennent pas de toi. Tu ne sors pas assez de ta bulle. Souviens toi quand tu as appris à utiliser MySQL : c'est compliqué au début, il faut créer des tables, se connecter à un serveur, gérer des index, quand on fait une requête ça retourne une ressource, il faut parcourir cette ressource avec mysql_fetch_array. Maintenant tu maîtrises. Souviens toi quand tu t'es mis à Ajax : c'est compliqué au début, il faut créer un objet XMLHTTPRequest, attendre que le readystate soit à 4, que le status soit à 200… Maintenant tu maîtrises. Maintenant, ce sont d'autres nouveautés, que tu assimiles facilement grâce à toute l'aide disponible. Et dans quelques jours, tu maîtrises. Imagine ce que tu gagnerais à utiliser du temps réel ? Un véritable chat, des notifications quand un personnage est attaqué, quand c'est à son tour de jouer, etc. Et toutes ces ressources serveur que tu gâches à aller chercher des informations plutôt que de les recevoir ? 10 joueurs sur le chat ? 10 requêtes toutes les 2 secondes… Qui vont faire une requête à ta base de données… 300 fois, Apache va charger les pages de ton application, se connecter à la base de données, faire des requêtes qui le plus souvent ne retourneront rien. 300 fois par minute pour 10 malheureux joueurs. Ne crois-tu pas que ça en vaut largement la peine ? Sephi-Chan RE: Tchat en direct - Argorate - 11-01-2011 Si, si je suis d'accord, niveau perf, ce serait bien mieux, mais pour etre franc, c'est le temps qui joue contre moi en l'occurence, il faut aussi tenir compte des delais, quand on passe 2, 3 jours a apprendre un truc, on fait rien de concré a coté... Donc ça après c'est a chacun de voir, mais c'est sur que je trouve ça très interessant et sans doute qu'un de ces quatre je ferais l'effort de prendre le temps. RE: Tchat en direct - php_addict - 11-01-2011 (11-01-2011, 12:58 AM)Argorate a écrit : Si, si je suis d'accord, niveau perf, ce serait bien mieux, mais pour etre franc, c'est le temps qui joue contre moi en l'occurence, il faut aussi tenir compte des delais oui ok mais si tu fait un chat qui fonctionne bien avec 100 joueurs et que dans un mois tu te retrouve avec 50 fois plus de joueurs et que cela consomme trop de ressources serveur et bien tu auras perdu du temps puisque tu n'aura plus qu'à recommencer ou à payer plus cher ton hébergement... RE: Tchat en direct - Sephi-Chan - 11-01-2011 Ça fait partie du truc : anticiper la charge. Sephi-Chan RE: Tchat en direct - Argorate - 11-01-2011 Je suis d'accord, sauf que le chat en ajax est déjà fait, et que j'ai une v0.2 a finir, donc je ferais ça pour la v0.3 par exemple RE: Tchat en direct - Cawrotte - 12-01-2011 Bonjour, J'ai suivi vos conseils pour opter pour Beaconpush. Ca a l'air super ! Cependant c'est la première fois que j'utilise ce genre de service, et je n'ai aucune idée de la manère dont je pourrais exploiter celui-ci pour réaliser un tchat via Beaconpush/PHP/(Ajax?)... Si vous pouviez m'éclairer... Perso je n'ai trouvé que ceci : https://github.com/ImDom/BeaconPush-PHP/blob/master/classes/beaconpush.php c'est exactement ce qu je charche mais ca ne fonctionne pas ;( Merci d'avance, Vegetaland Mon problème : Parse error: syntax error, unexpected T_VARIABLE, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homez.xxx/../www/../../beaconpush.php on line 5 RE: Tchat en direct - niahoo - 12-01-2011 montre nous ton code, comment veux-tu qu'on t'aide sinon ? |