Je veux apprendre comment faire un de ces systèmes à partir de zéro et je trouve beaucoup de liens indésirables sur Google. Je veux juste un simple tutoriel pour le chat PHP et MySQL le plus basique afin que je puisse comprendre le concept avant de commencer à jouer avec jQuery/AJAX.Comment puis-je créer un chat en direct PHP/MySQL?
Répondre
Un point de départ très simple
avoir une table de base de données pour un message
id | user | timestamp | message
Et une page PHP qui envoie une requête AJAX pour lire les nouveaux messages.
Cela impliquera de vérifier la base de données pour voir s'il y a des messages depuis le moment où la demande a été reçue. Si aucun message, puis boucle, attendez et essayez à nouveau dans 100ms (ou tout ce que vous pensez est décalage acceptable). Lorsque la requête Ajax renvoie un message (une réponse JSON serait la meilleure), affichez l'utilisateur, l'heure et le message sur la page en utilisant JQuery.
Je viens d'écrire ma première application ajax, donc encore très nouvelle à ce sujet. Est-il acceptable de faire des sondages à partir du navigateur? Cela ne provoquera-t-il pas une utilisation élevée du processeur, etc.? – zaidwaqi
Vous pouvez effectuer un sondage à partir du navigateur et laisser le serveur faire une boucle jusqu'à ce qu'un nouveau message soit trouvé, puis renvoyer une réponse. C'est ce qu'on appelle une longue interrogation, et c'est l'une des rares façons de contourner le besoin de sockets en programmation web – Codemwnci
intéressant ... merci, surtout pour le mot-clé – zaidwaqi
La partie live de votre discussion est la partie la plus difficile, si vous commencez juste je passerais cela. Commencez par créer un simple livre d'or, puis ajoutez plus de fonctionnalités.
Il existe de nombreux tutoriels sur la façon de créer un livre d'or, et même quelques scripts gratuits dont vous pouvez apprendre. Une fois que votre livre d'or a fonctionné, vous pouvez ajouter des fonctionnalités telles que le chargement automatique de nouveaux messages pour le faire apparaître comme vivant, en utilisant l'interrogation AJAX. Qu'est-ce que vous faites essentiellement faire un appel AJAX au serveur à intervalles réguliers pour obtenir tous les messages et l'afficher sur votre page.
Mais qu'en est-il de la partie opérateur? Il doit y avoir un opérateur (admin) pour gérer les messages des clients entrants et y répondre, non? Donc, si je comprends bien, le script côté admin va continuer à vérifier les dernières entrées dans la base de données (à intervalles réguliers, disons toutes les 10 secondes, en utilisant ajax) et montrer à l'admin, les détails du message et le client correspondant. Ainsi, l'administrateur peut sélectionner le client et lui envoyer une réponse. Ensuite, à la fin du client, nous devons montrer les messages ciblés sur ce client (à intervalles réguliers). –
PHP/MySQL Chat 101:
1) utilisateur ouvre un browser
2) utilisateur entre address dans brower
3) navigateur envoie HTTP demande
4) server reçoit HTTP demande
5) serveur dit à l'interpréteur PHP de s'exécuter PHP script
6) Script PHP connects à MySQL database
7) Script PHP retrieves list of messages
8) PHP génère une réponse HTTP en code HTML avec des messages et form
9) Le serveur envoie une réponse HTTP au navigateur
10) Navigateur tire HTML de réponse HTTP
11) Types d'utilisateurs nouveau message et soumet le formulaire
12) envoyer navigateur requête HTTP POST
13) ...
Trouvé tutoriel très intéressant ici
Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (http://meta.stackexchange.com/q/8259) d'inclure les parties essentielles de la réponse ici, et de fournir le lien pour référence. –
Si vous devez utiliser php et mySQL for chat, ayez au moins une table séparée pour les messages non lus. Si vous interrogez vous aurez probablement besoin de vérifier la base de données pour les nouveaux messages toutes les 100ms ou plus. Si votre table de message total est de 1000 lignes, la vérification toutes les 100ms va tuer votre serveur (surtout si de nombreux utilisateurs sont connectés).Je structurerais ma base de données mySQL avec une table pour seulement les messages non lus et les déplacerais à une plus grande table pour de vieux messages une fois lus. De cette façon, vous ne vérifiez pas une grande table tout le temps.
Encore mieux est d'utiliser une base de données de cache pour les messages non lus comme redis (facebook utilisé memcacheD).
Même encore mieux est de tout simplement pas utiliser php tous ensemble et utiliser un événement avec la langue conduit comme callbacks Node.js
- 1. Recherche en utilisant phpmysql
- 2. Chat vidéo en direct en streaming sur Android?
- 3. Tech nécessaire pour créer un site de chat vidéo en direct?
- 4. Ruby on Rails 3 - chat en direct public
- 5. Comment créer un chat-bot gmail?
- 6. Comment créer un chat similaire iMessage?
- 7. Comment créer un chat en ligne P2P sans serveur?
- 8. Comment créer une conversation en direct dans JSP
- 9. Comment créer un flux en direct en utilisant Rails
- 10. comment créer un objet en direct en utilisant jquery
- 11. Chat en direct dans l'application ruby on rails
- 12. Coldfusion 10 - Live chat en direct avec Websockets
- 13. Android: API pour le chat en direct dans Android
- 14. android créer un chat comme gtalk
- 15. Créer un chat div comme un facebook
- 16. Comment créer un flux web en direct (audio + vidéo)?
- 17. Créer un module de chat dans Iphone
- 18. Créer un Chat Client/Serveur simple
- 19. Javascript et PHPMySQL
- 20. Créer une bulle de chat en Android
- 21. Attribuer un nom d'utilisateur unique dans PHPMYSQL
- 22. Objectif: créer un Chat IM en ligne décent
- 23. Node.JS bug essayant de créer un chat
- 24. fenêtre pop-up « Chat avec l'agent en direct » gouttes du haut en asp.net
- 25. Comment utiliser urlencode dans un lien hypertexte utilisant phpmysql
- 26. comment afficher deux id en fonction d'insertion dans phpMySQL
- 27. créer un login plus solidement dans phpmysql comment autre que mysql real s'échapper?
- 28. comment faire un chat facebook?
- 29. comment implémenter le chat en direct dans l'iphone en utilisant le framework XMPP?
- 30. comment ios Chat en direct avec la mise en œuvre DB mysqlite simple?
Je pense que cette question est un peu vague - peut-être si vous focalisé un peu plus sur le particulier aspect qui vous préoccupe aiderait. Vous ne dites pas quel est votre niveau d'expertise avec PHP, la conception de base de données etc, donc quel niveau de tutoriel recherchez-vous? – Polsonby
cadres + 'meta-refresh' était le chemin avant l'ère AJAX –
Quelle vague question. Vous pourriez avoir plus de chance si vous demandez de l'aide sur une partie spécifique de votre projet, plutôt que de simplement demander un enseignement sur l'ensemble. –