Online -Chatrooms ist eine Online -Plattform für die Kommunikation mit mehreren Personen. Mit der Erfindung und Reife von immer mehr neuen Technologien haben Online -Chatrooms auch verschiedene Technologien verwendet. Ich möchte diesen Artikel kurz zusammenfassen.
Lassen Sie uns zunächst über die Front-End-Technologie sprechen. Das neueste ist natürlich HTML5-basierte WebSocket, das die Full-Duplex-Kommunikation zwischen dem Browser und dem Server implementiert. Das WebSocket -Kommunikationsprotokoll wurde 2011 als Standard -RFC 6455 von der IETF bezeichnet, und die WebSocket -API wurde von W3C als Standard bezeichnet. In der WebSocket -API muss der Browser und der Server nur die Hand geben, und dann wird zwischen dem Browser und dem Server ein schneller Kanal gebildet. Daten können direkt zwischen den beiden übertragen werden. Da WebSocket jedoch eine HTML5 -API ist, haben viele Browser noch keine Unterstützung, daher wird diese Methode jetzt nicht besonders verwendet. Der zweite Typ ist Ajax. Es verwendet eine Wahlmethode. Hin und wieder laden Sie Daten auf dem Server herunter, um zu überprüfen, ob sie aktualisiert werden. Sein Vorteil ist die asynchrone Anforderungsverarbeitung (Synchronisation kann ebenfalls eingerichtet werden) und blockiert andere Operationen des Benutzers nicht. Der Nachteil ist, dass ununterbrochene Umfragen nicht nur Bandbreite konsumiert, sondern auch zu viele Terminal- und Serverressourcen einnimmt. Da es ein Zeitintervall für Ajax-Umfragen gibt, sind die erhaltenen Nachrichten nicht in Echtzeit, da es sich nicht um einen Nachrichtenauslöser handelt und die Effizienz von AJAX nahezu das niedrigste ist. Der dritte Typ ist die serverbasierte Push-Technologie (COMET). Es heißt Push, aber es ist tatsächlich Pseudo -Push. Das Prinzip besteht darin, eine lange Verbindung zwischen dem Terminal und dem Server herzustellen. Die Rezeption erhält Inhalte, indem er feststellt, ob sich der Inhalt dieser langen Verbindung geändert hat. Sein Vorteil ist, dass es weniger Ressourcen einnimmt und eine gute Echtzeitleistung hat. Es erfordert besondere Unterstützung vom Server und nimmt die Verbindung für lange Zeit ein. Jetzt übernehmen immer mehr Dienste diese Technologie.
Sprechen wir über den Hintergrund. Chatrooms sind hohe IO -Anwendungen, und die Datenbank ist möglicherweise der größte Engpass. Das Merkmal des Chats ist, dass es viele kurze Texte gibt, ähnlich wie bei Weibo. Darüber hinaus gehört es zu einem Multi-User-System. Wenn der Benutzer eine Größenordnung erreicht, sollte der Abfragedruck sehr hoch sein, wenn eine relationale Datenbank wie MySQL verwendet wird. Wenn es keine besonderen Anforderungen gibt, glaube ich persönlich, dass Chat -Aufzeichnungen nicht dauerhaft gespeichert werden müssen. Zu diesem Zeitpunkt können speicherbasierte Speichersysteme wie Memcache und Redis eine Rolle spielen. Unten finden Sie einen einfachen Online -Chatraum, der auf AJAX+PHP+Memcache basiert, das ich entwickelt habe.
In diesem Chatraum werden alle Chat -Datensätze in Memcache gespeichert. Die maximale ID von Chat -Datensätzen wird mit CID gespeichert und die Chat -Datensätze werden mit MSGCID gespeichert. Für jeden eingefügten Datensatz wird die CID durch 1. Die Rezeption erhöht. Da Memcache auf dem Speicher basiert, läuft das Gesamtsystem sehr schnell. Unten finden Sie den Quellcode des Systems. Es gibt nur zwei Dateien im gesamten System, die weniger als 10 KB zusammen sind.
Wulin.com Download
https://github.com/hitoy/online-chatroom
Systemanforderungen:
1. Memcache ist installiert
2. Installieren Sie die Memcache -Erweiterung auf PHP
3. Moderne Browser, die JavaScript und Ajax unterstützen