TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 | |
Aoemaster
|
# Posté le 16/05/2006 à 22:50:47 - Ce membre a mis la note : 13 |
![]() Groupe : Bannis |
j'ai mi 13 car on ne voit pas le résultat a la fin
si tu pouvais nous mettre le chat en test pour voir, ce serai bien... Aimer quelqu'un c'est lui donner le pouvoir de vous détruire. |
NarTy
|
# Posté le 17/05/2006 à 18:27:02 - Ce membre n'a pas mis de note |
|
Je t'aime amèrement ! Groupe : Bannis |
Bah ... Franchement c'est imcomprehensilble !
Venez jouer
|
Tantan
|
# Posté le 08/06/2006 à 20:12:04 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
Moi je suis pas du tout d'accord
Ce tuto est genial, il aborde une chose encore jamais vue dans les cours de Mateo ce qui est deja un tres bon point de plus il est simple et concis ce qui permet une tres bonne compréhension Je pense que la seul chose à "corriger" c'est de bien précisé que ce tuto ne s'adresse pas au nouveau zero mais au zero deja expérimenté Ps: sinon il manque un } du code de serveur sur la page de conclusion;) |
azmeuk
|
# Posté le 09/06/2006 à 10:43:26 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Merci Tantan pour ta critique.
Le } a été rajouté! azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
mannia
|
# Posté le 26/08/2006 à 13:28:42 - Ce membre a mis la note : 16 |
![]() Groupe : Membres |
Hello moi j'ai mit 16 car les socket c'est nouveau et bien expliquer même si j'ai pas tout compris du 1er coup. Sinon moi j'ai une erreur avec la& page reception.php je t'en est fait par par email. |
Blue Sn4ke
|
# Posté le 31/08/2006 à 00:02:46 - Ce membre n'a pas mis de note |
Zelda Fan![]() Groupe : Membres |
Salut
Je cherchais un tuto pour apprendre à manier des sockets, et avec un comme celui ci ça donne encore plus envie
Par contre je ne comprends pas deux choses : - Pourquoi avoir besoin de sockets ici puisque client et serveur sont situés sur le même ordinateur ? On aurait très bien pu lire un fichier texte sans passer par les sockets par exemple non ? - Dans la partie serveur tu utilises des variables sous la forme $this->xxx, c'est quoi ? |
azmeuk
|
# Posté le 31/08/2006 à 01:08:55 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Et bien pour un chat, le serveur et les clients ne sont pas censés être sur le même ordinateur. C'est d'ailleur le principe des serveurs/clients. Et à moins que tu ne veuille chatter seul, faire ça par un fichier texte ne serait pas d'une garde utilité .
Et pou ce qui est de ta deuxième question, c'est la syntaxe utilisée pour les classes, aussi apellé ProgrammationOrientéObjet (POO). Voici un tuto fait par un zéro détaillant les classes http://www.siteduzero.com/tuto-3-1678-0-la-programmation-orientee-objet-en-php.html azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
Blue Sn4ke
|
# Posté le 31/08/2006 à 14:40:53 - Ce membre n'a pas mis de note |
Zelda Fan![]() Groupe : Membres |
Bah pourtant la partie Ajax n'envoie/recoit pas elle le socket, elle appelle la page reception.php qui elle se connecte au serveur et renvoie la réponse ! Donc le client et le serveur son bien sur la même machine à la fin non ? |
azmeuk
|
# Posté le 31/08/2006 à 15:11:56 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Non tu n'y est pas
La page réception.php comme son nom l'indique se contente de recevori les réponses. C'est la page send.php qui envoie les messages. (Car en effet Ajax est utilisé deux fois, une première pour envoyer un message , une seconde pour recevoir les réponses). Comme je le disais tu Peux mettre le serveur et un client sur la même machien mais ça n'est d'aucune utilité. Je te fais un schéma:
Comme tu le vois, les client et le serveur sont deux choises distinctes qui ne sont pas forcement sur le même PC. azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
Damien490
|
# Posté le 10/01/2007 à 18:09:17 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
Bonjour,
-Est il possible de faire en sorte qu'un appuie sur la touche "Entrée" envoi le message ? -Est il possible que la barre de défilement verticale du div reste toujours en position basse lorsque le nombre de messages dépasse la hauteur du div ? -Est il possible d'afficher les carractère spéciaux ( accents, cédille ... ) Bref le rendre agréable d'utilisation !
Merci à vous ! |
B2Moo
|
# Posté le 10/01/2007 à 21:07:34 - Ce membre a mis la note : 17 |
JS ? où ça ? où ça ??!!![]() Groupe : Membres |
Je n'ai lu que ce dernier tutoriel (pas le tout) donc mon premier commentaire est sûrement injustifié.
1-il ne faut pas confondre socket et ajax: la connexion par socket n'est utilisée ici qu'entre les processus php, on aurait très bien pu faire communiquer les pages php par une base mysql ( mais c'est plus lent, d'ou le choix des sockets). La connexion ajax elle, permet de faire communiquer le client avec le serveur (et ça c'est déjà plus intéressant). voir ce wiki 2-Cette technique de streaming a beaucoup de chance de ne pas marcher (voir les alternatives sur la page du wiki). A chaque fois que des données sont reçue, onreadystatechange est exécuté. Ca marche, seulement, le readyState ne change pas forcément: quand la page est en cours de chargement readyState reste constament à 3 (en cours de chargement, connexion qui n'est pas terminée). onreadystatechange n'aurait pas du être appelée plusieurs fois (car readyState ne change PAS ).
C'est donc à considérer comme un comportement anormal de la part de firefox (je n'ai testé que là dessus), donc en quelque sorte déprécié. voir def de l'évenement readystatechange qui déclenche la fonction onreadystatechange.Citation : w3c event must be dispatched when readyState changes value
Il aurait mieux valu utiliser une vérification régulière du contenu de responseText (ex du periodicXHReqCheck() dans le wiki). Secret (cliquez pour afficher) 17/20, parce que c'est quand même un défi technique assez impressionnant Je ne ponds pas vos scripts !! Je veux bien vous aider par contre (cot cot) , à condition d'expliquer clairement votre problème: exemple, codes, et surtout messages d'erreursbig-tuto sur la gestion de la souris en js. |
azmeuk
|
# Posté le 11/01/2007 à 11:20:46 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Citation : Damien490 Est il possible de faire en sorte qu'un appuie sur la touche "Entrée" envoi le message ?
Il me semble qu'il est en effet possible de gérer ceci avec JavaScript (je crois que c'est la gestion des évènements), je compte rechercher comment faire, et je mettrais à jour le tuto Citation : Damien490 Est il possible que la barre de défilement verticale du div reste toujours en position basse lorsque le nombre de messages dépasse la hauteur du div ?
Code : JavaScript document.getElementById("content").scrollTop = document.getElementById("content").scrollHeight(); est censé mettre la barre verticale tout en bas. Ca marche chez moi, peut etre est-ce un problème de navigateur? Tu utilises lequel ?
Citation : Damien490 Est il possible d'afficher les carractère spéciaux ( accents, cédille ... )
Il me semble qu'il y a une manipulation à faire pour que tous les caractères s'affichent normalement, mais ce problème là est dû à ajax et non pas à php. Je vais rechercher aussi. Ensuite Boo2M0rs0 merci beaucoup pour les informations que tu m'apportes, mais l'avantage d'exploiter ce bug ( qui marche aussi sous ie à mes souvenirs) est de voir s'afficher les messages en temps réel, et une vérification du réponsetext ne le ferais pas et une boucle de vérification trop rapide consommerais de la bande passante pour rien (on est pas à ça près mais bon). Ceci dit si je viens de dire une connerie ou que tu as autre chose de bien à proposer, fais moi signe! Et merci pour la note azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
Damien490
|
# Posté le 11/01/2007 à 13:14:23 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
Citation : azmeuk Citation : Damien490 Est il possible d'afficher les carractère spéciaux ( accents, cédille ... ) Il me semble qu'il y a une manipulation à faire pour que tous les caractères s'affichent normalement, mais ce problème là est dû à ajax et non pas à php. Je vais rechercher aussi. J'ai réussi a régler ce problème en faisant ceci : Code : PHP $pseudo = stripslashes(utf8_decode(substr($input , 0 , strpos($input , ' '))));
$message = stripslashes(utf8_decode(substr($input , strpos($input , ' ')+1 , strlen($input)))); Pour la barre défilement, rien à faire chez moi comme chez les utilisateurs du chat ça ne fonctionne pas ! (j'utilise FF ) Peut être que j'ai un problème d'adaptation de ton code sur mon server. Je revois ça un peu plus tard. Si ces petit désagrément sont réglé, alors le chat est vraiment très agréable ! totalement intégrable, pas trop gourmand ! Le bonheur quoi xD Merci beaucoup à toi ! 20/20
[EDIT] ops là un autre truc de résolu, la barre de défilement en bas en utilisant ce code Code : JavaScript var div = document.getElementById('content');
div.scrollTop = div.scrollHeight; |
B2Moo
|
# Posté le 14/01/2007 à 11:27:15 - Ce membre a mis la note : 17 |
JS ? où ça ? où ça ??!!![]() Groupe : Membres |
Citation et une boucle de vérification trop rapide consommerais de la bande passante pour rien Non justement, le timer ne ferais que vérifier le contenu de responseText , il ne lancerai pas de nouvelles requêtes donc ça ne consomme aucune bande passante (du temps processeur, m'enfin, un responseText.length toute les 0.1 s ça devrait pas tuer).
J'ai fait une page de test ici (désolé pour l'encodage :x) pour voir comment se comporte onreadystatechange. Si il y a écrit plusieurs fois que readyState passe à 3 (alors qu'il est déjà à 3), cela signifie que le navigateur supporte cette méthode. edit: ie 6: non, par contre c'est étranger parce qu'il y a deux appels pour readyState = 1 ^o) D'ailleurs, lance une exception si on essaye de prendre le contenu avant que readyState = 4 opera 8.5: non plus, responseText accessible mais vide. L'étape 2 est sautée et la 3 et 4 sont quasi-simultanée. Je ne ponds pas vos scripts !! Je veux bien vous aider par contre (cot cot) , à condition d'expliquer clairement votre problème: exemple, codes, et surtout messages d'erreursbig-tuto sur la gestion de la souris en js. |
Damien490
|
# Posté le 14/01/2007 à 18:56:29 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
Il y a un autre problème qui est assez ennuyeux, le server a tendance à s'éteindre tout seul malgré ces lignes :
Code : PHP +++ [EDIT] J'ai réussi a réglé l'appuis sur entrer pour envoyer un message comme ceci : Code : HTML <form action="client.php" method="post" name="bidule" onSubmit="return(false)"> <input type="text" size="50" name="envoyer" id="envoyer" /> <input type="submit" value="Envoyer" onClick="envoi_message()" /></center> <input type="hidden" id="pseudo" value="<?php echo $donnees['pseudo']; ?>" /></form> Il n'y a plus que le bug du server éteint intempesti a régler ! :x |
azmeuk
|
# Posté le 24/01/2007 à 20:48:45 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Le tuto est en cours d'édition, j'ai apporté comme changements toutes vos suggestions, et si j'ai du temps peut-être que je l'étofferai. Pour ce qui est du serveur qui coupe, je n'ai pas eu ce problème, comment le lances-tu ? Et sinon j'ai déjà vu ceci ignore_user_abort(true); au lieu de ignore_user_abort(), peut-être cela change-t-il quelquechose?
azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
Damien490
|
# Posté le 25/01/2007 à 18:02:31 - Ce membre a mis la note : 20 |
![]() Groupe : Membres |
effectivement, j'ai mi ignore_user_abort(1) et maintenant ça marche correctement
sinon une petite suggestion au passage des fois que tu t'ennuirais ! Une liste des gens connéctés sur le chat en temps réel ça serait plutot cool !
|
azmeuk
|
# Posté le 25/01/2007 à 18:15:00 - Ce membre n'a pas mis de note |
|
n'a Jamais peur de la vapeur Groupe : Membres |
Oui en effet, je vais préparer ça...
azmeuk n'a Jamais peur de la vapeur Ogre3d.fr Partaz.net, des tablatures sans pub et sans inscription Comment utiliser les sockets avec php? Comment faire un chat avec les sockets? Fraggantdelit Aléavatar: Un avatar aléatoire? Qui change tout le temps, comme le mien? Ramoloss is da one Zordania Codeur en : PHP xHTML CSS Javascript C++ C Java C# VBA Pro*C Bash Asm / Connait Merise2 et UML |
Awaken
|
# Posté le 26/01/2007 à 17:17:27 - Ce membre n'a pas mis de note |
![]() Groupe : Membres |
Y aurait-il pas un moyen de garder la connexion ouverte et de ne pas se connecter à chaque fois qu'on veut envoyer un nouveau message ?
The greatest trick the Devil ever pulled was convincing the world he didn't exist. |
almaju
|
# Posté le 26/03/2007 à 23:53:15 - Ce membre n'a pas mis de note |
StaarWar![]() Groupe : Membres |
Tu peux utiliser les cookies .
Pour le reste, je pense que http://google.fr t'eclaireras mieux que moi ! (et puis j'ai la flemme là, il est minuit )
PS : Je n'ai pas mis de note car je n'ai pas encore testé, mais j'ai déjà une petite idée de créer un Windows Live Messenger... encore un rêve que je ne ferais pas je crois
|
tukan
|
# Posté le 29/05/2007 à 21:36:26 - Ce membre n'a pas mis de note |
|
Groupe : Membres |
Je trouve le tuto pas mal, le sujet étant pas évident.
Par contre je reviens au schéma que tu a fait (client/serveur) et a une remarque d'un zero (c'est bien comme sa qu'on s'appelle non ? ^^) bref, je comprend pas non plus car le php étant toujours éxécuté coté serveur (l'ordi où tourne Apache.exe), le client et le serveur sont donc la même machine (l'ordi où tourne Apache.exe) donc j'ai un truc que j'ai pas capté... Recherche beta-testeur pour super site trop bien tous nouveau le meilleur de tous. *hum* faut que je me calme !!! Donc recherche beta testeur pour jeu en ligne voir ma fiche recrutement |
Erick
|
# Posté le 31/05/2007 à 17:46:33 - Ce membre a mis la note : 14 |
Se coucher tard nuit.![]() Groupe : Membres |
Moi ça marche pas ! -_-'
Quand je suis sur "client?pseudo=Coucou", je tape mon message, je fais envoyer, et là y a rien qui apparait. Exactement comme si tout marchait, mais y a pas les messages !
----> Erick |
Jeremie78
|
# Posté le 13/07/2007 à 12:09:34 - Ce membre a mis la note : 18 |
|
Powered by GNU/Linux Groupe : Membres |
C'est une façon intéressante de faire un tchat, mais pourquoi ne pas tout centraliser sur le même serveur ?
On pourrais tout scinder en deux pages bien distinctes : - la page qui génère le formulaire puis ensuite, une fois le formulaire remplis et envoyé, le code Ajax pour le Tchat - la page qui traite toutes les requêtes envoyées par Ajax Cela simplifierais grandement les choses. Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ... |
Sowhat
|
# Posté le 24/07/2007 à 18:55:45 - Ce membre a mis la note : 17 |
Redlime >3![]() Groupe : Membres |
Vraiment bien expliqué -> 17
lala. |
Dufresne
|
# Posté le 17/08/2007 à 15:16:27 - Ce membre a mis la note : 18 |
Allez VA !!![]() Groupe : Membres |
J'ai un problème: quand un client ferme sont navigateur, le socket de ce client est toujours connecté ![]() Et à cause de ça, le serveur ne vide pas la variable $this->clients[$nom_case] A part ce truc la, super tuto (18/20)
![]() |
dakaro
|
# Posté le 03/11/2007 à 20:28:18 - Ce membre n'a pas mis de note |
![]() Groupe : Membres |
quelqu'un serai donner le lien ver sle tchat svp, pour que je puisse voir a quoi ca resemble a la fin. Envie de réaliser un projet sérieux ? Alors Magic Park est fait pour vous ! |
JeromeJ
|
# Posté le 16/03/2008 à 16:22:00 - Ce membre a mis la note : 10 |
![]() Groupe : Membres |
Bah moi jtrouve que ta syntaxe gache un peu tout :/ De plus certains points ne sont pas très claires. Secret (cliquez pour afficher) Ce que je maitrise actuellement: XHTML, CSS, PHP, Action Script 2 et 3, JavaScript, SQL, Python, et un peu de C, C++ et d'erl |
asicolin
|
# Posté le 04/11/2008 à 13:40:31 - Ce membre a mis la note : 15 |
|
Groupe : Membres |
Tout d'abord merci pour le travail accompli avec ce tuto qui est intéressant. La technique que tu emploies est vraiment pratique et peu décrite sur internet. J'ai pu cependant relever quelques petites erreurs ou manque de précision (ou c'est moi qui ait mal compris ):1) - Pour pouvoir récupérer les données envoyée par le serveur via le script de réception, j'ai du utiliser la fonction ob_flush() trouvée ici. Si je n'utilise pas cette fonction, le readystate du xhr objet reste a 1. 2) - Script "reception.php" ligne 18 : socket_read($socket, $port)) Le 2eme param de socket_read n'est pas un port mais le nombre d'octets a lire. 3) - Dans la partie "Le chat" de ton tutoriel, fonction reception() en javascript : Tu utilises une fonction basé sur le changement de readystate pour actualiser le chat Citation : Dans la partie 'Le Chat' xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 3) { var reponse = xhr_object.responseText; document.getElementById("content").innerHTML = reponse; div.scrollTop = div.scrollHeight; } } Et dans la partie "Recapitulons le code", tu utilises pour recuperer les informations une fonction qui se relance toute les 100ms Citation : Dans la partie 'récapitulons le code' var update = function() { if(xhr_object.readyState == 3 && xhr_object.responseText.length > taille) { taille = xhr_object.responseText.length; var reponse = xhr_object.responseText; document.getElementById("content").innerHTML = reponse; div.scrollTop = div.scrollHeight; } setTimeout(update,100); //Se relance toute les 100 ms (voire moins ?) }; update(); Chez moi les 2 marchent mais pourquoi une fonction qui va vérifier toute les Xms plutot que la premiere qui me parait bien plus efficace. Erreur de Ctrl-C Ctrl-V ? Enfin voila je crois que c'était tout, j'ai pris la peine d'écrire parceque je trouve ton tuto utile et qu'avec 2, 3 ptits changements je pense qu'il pourrait être parfait. Bonne continuation. PS : quelqu'un saurait me dire dans quel cas il est plus intéressant d'utiliser sock_create() et dans quels cas il vaut mieux se servir de fsockopen() ? merci |
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
52 Zéros connectés |
8 requêtes |
0.1428s (0.1313s)
