Maison >interface Web >js tutoriel >Salon de discussion en ligne simple basé sur les compétences javascript, ajax, memcache et PHP_javascript
Les forums de discussion en ligne sont une plate-forme de réseau permettant à plusieurs personnes de communiquer. Avec l'invention et l'application mature de nouvelles technologies, des forums de discussion en ligne sont également apparus en utilisant diverses technologies. Je voudrais résumer brièvement cet article.
Tout d'abord, parlons de la technologie front-end. La dernière en date est bien sûr le websocket basé sur HTML5, qui réalise une communication full-duplex entre le navigateur et le serveur. Le protocole de communication WebSocket a été défini comme norme RFC 6455 par l'IETF en 2011, et l'API WebSocket a été définie comme norme par le W3C. Dans l'API WebSocket, le navigateur et le serveur n'ont besoin que d'effectuer une action de négociation, puis un canal rapide est formé entre le navigateur et le serveur. Les données peuvent être transmises directement entre les deux. Cependant, comme Websocket est une API HTML5 et n'est pas pris en charge par de nombreux navigateurs, cette méthode n'est pas particulièrement utilisée actuellement. Le second est ajax, qui utilise une méthode d'interrogation. De temps en temps, il télécharge les données du serveur pour vérifier si elles ont été mises à jour. Son avantage est le traitement asynchrone des requêtes (la synchronisation peut également être définie), qui ne bloque pas les autres. Pour les utilisateurs, l'inconvénient est qu'une interrogation ininterrompue consomme non seulement de la bande passante, mais occupe également trop de ressources du terminal et du serveur, et comme l'interrogation ajax a un intervalle de temps, les informations obtenues ne sont pas en temps réel, car elles ne sont pas déclenchées par. un message, et l'efficacité d'ajax est presque la plus faible. Le troisième type est la technologie push basée sur serveur (comet). Il s'agit en fait de pseudo-push. Le principe est d'établir une connexion longue entre le terminal et le serveur. en déterminant si le contenu de cette longue connexion a changé. Ses avantages sont qu'elle consomme moins de ressources et offre de bonnes performances en temps réel. Elle nécessite un support particulier de la part du serveur et occupe la connexion pendant une longue période. De plus en plus de services utilisent désormais cette technologie.
Parlons du backend. Les salons de discussion sont des applications à forte IO, et la base de données peut être le plus gros goulot d'étranglement. Le chat est caractérisé par de nombreux textes courts, similaires à Weibo. Et c'est un système multi-utilisateurs Lorsque le nombre d'utilisateurs atteint un ordre de grandeur, si une base de données relationnelle telle que Mysql est utilisée, la pression des requêtes devrait être importante. S'il n'y a pas d'exigences particulières, je pense personnellement que les enregistrements de discussion n'ont pas besoin d'être stockés de manière permanente, les systèmes de stockage basés sur la mémoire tels que Memcache et Redis peuvent entrer en jeu. Vous trouverez ci-dessous un simple salon de discussion en ligne basé sur le memcache php ajax que j'ai développé.
Dans cette salle de discussion, tous les enregistrements de discussion sont stockés dans memcache. cid est utilisé pour stocker l'identifiant maximum des enregistrements de discussion, et msgcid est utilisé pour stocker les enregistrements de discussion. Chaque fois qu'un enregistrement est inséré, le cid augmente de 1. . La réception obtient les données au format json via ajax. Étant donné que Memcache est basé sur la mémoire, l'ensemble du système fonctionne très rapidement. Vous trouverez ci-dessous le code source du système. Il n'y a que deux fichiers dans l'ensemble du système, qui ensemble font moins de 10 Ko.
Téléchargement de la maison du script
https://github.com/hitoy/online-chatroom
Exigences du système :
1. Memcache est installé
2. PHP installe l'extension Memcache
3. Navigateurs modernes prenant en charge Javascript et ajax