Heim  >  Artikel  >  Web-Frontend  >  Einfacher Online-Chatroom basierend auf Javascript-, Ajax-, Memcache- und PHP_Javascript-Kenntnissen

Einfacher Online-Chatroom basierend auf Javascript-, Ajax-, Memcache- und PHP_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:16:021380Durchsuche

Online-Chatrooms sind eine Netzwerkplattform für die Kommunikation mehrerer Personen. Mit der Erfindung und ausgereiften Anwendung immer mehr neuer Technologien sind auch Online-Chatrooms entstanden, die verschiedene Technologien verwenden. Dies möchte ich in diesem Artikel kurz zusammenfassen.

Lassen Sie uns zunächst über die Front-End-Technologie sprechen. Die neueste ist natürlich ein auf HTML5 basierender Websocket, der eine Vollduplex-Kommunikation zwischen dem Browser und dem Server realisiert. Das WebSocket-Kommunikationsprotokoll wurde 2011 von der IETF als Standard RFC 6455 festgelegt, und die WebSocket-API wurde vom W3C als Standard festgelegt. In der WebSocket-API müssen der Browser und der Server lediglich eine Handshake-Aktion ausführen, und dann wird ein schneller Kanal zwischen dem Browser und dem Server gebildet. Daten können direkt zwischen beiden übertragen werden. Da Websocket jedoch eine API von HTML5 ist und von vielen Browsern nicht unterstützt wird, wird diese Methode derzeit nicht besonders verwendet. Das zweite ist Ajax, das von Zeit zu Zeit Daten vom Server herunterlädt, um zu überprüfen, ob sie aktualisiert wurden. Sein Vorteil ist die asynchrone Anforderungsverarbeitung (auch Synchronisierung kann eingestellt werden), die andere nicht blockiert Für Benutzer besteht der Nachteil darin, dass ununterbrochene Abfragen nicht nur Bandbreite verbrauchen, sondern auch zu viele Terminal- und Serverressourcen beanspruchen. Da Ajax-Abfragen ein Zeitintervall haben, erfolgen die erhaltenen Informationen nicht in Echtzeit, da sie nicht ausgelöst werden eine Nachricht, und die Effizienz von Ajax ist fast am niedrigsten. Der dritte Typ ist die serverbasierte Push-Technologie (Komet), aber tatsächlich handelt es sich um Pseudo-Push. Das Prinzip besteht darin, eine lange Verbindung zwischen dem Terminal und dem Server herzustellen Durch die Feststellung, ob sich der Inhalt dieser langen Verbindung geändert hat, besteht der Vorteil darin, dass sie weniger Ressourcen beansprucht und eine gute Echtzeitleistung aufweist. Sie erfordert jedoch eine besondere Unterstützung durch den Server und beansprucht die Verbindung lange. Mittlerweile nutzen immer mehr Dienste diese Technologie.

Lassen Sie uns über die Backend-Anwendungen sprechen, und die Datenbank ist möglicherweise der größte Engpass. Chat zeichnet sich durch viele kurze Texte aus, ähnlich wie bei Weibo. Und es handelt sich um ein Mehrbenutzersystem, wenn die Anzahl der Benutzer eine Größenordnung erreicht und eine relationale Datenbank wie MySQL verwendet wird. Wenn es keine besonderen Anforderungen gibt, denke ich persönlich, dass Chat-Aufzeichnungen nicht dauerhaft gespeichert werden müssen. Zu diesem Zeitpunkt können speicherbasierte Speichersysteme wie Memcache und Redis ins Spiel kommen. Unten finden Sie einen einfachen Online-Chatraum, der auf dem von mir entwickelten Ajax-PHP-Memcache basiert.

In diesem Chatraum werden alle Chat-Datensätze im Memcache gespeichert, und msgcid wird zum Speichern der Chat-Datensätze verwendet. Jedes Mal, wenn ein Datensatz eingefügt wird, erhöht sich die cid . Die Rezeption erhält Daten im JSON-Format über Ajax. Da Memcache speicherbasiert ist, läuft das Gesamtsystem sehr schnell. Unten finden Sie den Quellcode des Systems. Es gibt nur zwei Dateien im gesamten System, die zusammen weniger als 10 KB groß sind.

Script Home Download

https://github.com/hitoy/online-chatroom

Systemanforderungen:
1. Memcache ist installiert
2. PHP installiert die Memcache-Erweiterung
3. Moderne Browser, die Javascript und Ajax unterstützen

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn