Home

Seite nicht gefunden

Wir haben vor kurzem unsere Seite und deren Inhalte aktualisiert.
Leider konnte der Inhalt auf den Sie zugreifen wollten nicht mehr gefunden werden.

Bitte orientieren Sie sich erneut. Wir hoffen durch die neue Struktur das Finden aller Informationen rund um die Databay AG und unserer Produkte vereinfacht zu haben.
 

Eventuell ist aber folgende Information das wonach sie gesucht haben:

PHP-Comet-Server

Nachdem Ajax ja nun schon in auf vielen Webseiten Einzug gehalten hat, hat es eine Erweiterung mit dem Namen Comet noch schwer die Herzen der Programmierer zu erobern. Technisch ist Comet auch keine neue Erfindung, ebenso wenig wie es Ajax war, aber neben der Tatsache, das ein Ding einen Namen braucht, bevor es anerkannt werden kann, ist Comet wie Ajax die geschickte Zusammenführung von vorhandenen Techniken zu einem nutzbaren Ganzen.

Jeder Webentwickler kennt die einzelnen Komponenten, HTML, JavaScript, Iframes, PHP, Sockets, usw. aber erst die Kombination und massentaugliche Bibliotheken haben Ajax zum Durchbruch verholfen. Bei Comet ist es nichts anderes. Mit Comet soll die Möglichkeit geschaffen werden ein Server-Push-Verfahren anwenden zu können, also der Server-Anwendung erlauben Informationen zum Browser zu senden wenn die Informationen zur Verfügung stehen und nicht erst wenn der Browser diese abruft, obwohl sie schon längst hätten ausgeliefert werden können.

Da eine Verbindung vom Browser zum Server aufgebaut wird und (leider) nicht umgekehrt war es im üblichen Ablauf einer Client-Server-Kommunikation nicht möglich den Server von sich aus Daten senden zu lassen. Wohin auch ?
Ein Ansatz ist, die Verbindung zum nicht abzubrechen. Da der Server derjenige ist, der die Daten ausliefert und damit auch festlegt, wann alle Daten gesendet wurden, kann er dies (beliebig) lange hinauszögern. Für eine normale Webseite ist es wenig sinnvoll die Darstellung des Inhaltes verzögert anzuzeigen, aber im Zusammenhang mit Ajax wo z.B. mit JavaScript Teile der Seite ausgetauscht werden, könnte man auf diese Weise die Verbindung nutzen um Inhalte zur Darstellung zu senden, sobald der Server dies für nötig hält. Ein einfaches Beispiel ist ein Chat-System. Jeder Client kann eine Eingabezeile senden die dann an alle Clients verteilt und angezeigt wird. Hat jeder Client eine geöffnete Verbindung zum Server auf der dieser Daten senden kann, kann die Anzeige sofort nach Einlieferung im Server erfolgen. Andernfalls müsste der Client ständig nachfragen ob neue Nachrichten vorliegen.

Nun bedeutet eine geöffnete Verbindung aber automatisch einen blockierten Apache/PHP-Prozess der die meiste Zeit über nichts tut, sondern nur darauf wartet ob ein Client Daten sendet die er weiter verteilen kann. Da der Apache als Server zwar sehr mächtig ist, dafür aber auch entsprechend viel Speicher belegt kann es schnell zu Engpässen führen, wenn eine stark besuchte Seite jeweils eine Verbindung durchgehend aufrechterhält.


PHP-Comet-Server


Aus dieser Überlegung heraus habe ich einen Socket-Server auf PHP-Basis entwickelt. Dieser Server kann z.B. auf Port 81 gestartet werden um dann alle Anfragen des Browsers auf diesen Port auszuführen. Über bestimmte GET-Parameter können Informationen an den Comet-Server gesendet werden bzw. eine Verbindung initiiert werden, die aufrechterhalten bleibt. Diese Aufrufe haben nichts mit dem Apache zu tun, da alle Socket-Anfragen des Browsers direkt an den Comet-Server gehen. Um aber weiterhin die volle Funktionalität des Apache nutzen zu können, werden alle Anfragen die nicht den Comet-Server betreffen an den eigentlichen Webserver durchgereicht. Um den Comet-Server transparent zu machen, könnte dieser z.B.: auf Port 80 konfiguriert werden und der eigentliche Webserver auf Port 81, da er von nun an nur noch über den Comet-Server angesprochen wird.

Beispiel


In einem simplen Beispiel wird jede Eingabe in ein Textfeld an alle angeschlossenen Teilnehmer verteilt. Rufen Sie die URL mit zwei verschiedenen Browsern auf um das Ergebnis zu sehen:

Beispiel 1 aufrufen

Eine erweiterte Demo zeigt ein kleines Spiel. Rufen Sie dies auch in zwei Browsern auf, am besten direkt zusätzlich von einem Kollegen. In diesem Spiel geht es darum mit seiner eigenen Spielfigur (zunächst hochladen) die Figuren der anderen umzudrehen:

Beispiel 2 aufrufen

Im 3. Beispiel wird ein Chat-Server mit Comet umgesetzt in dem jeder Tastendruck direkt an alle angeschlossenen Leser übermittelt wird:

Beispiel 3 aufrufen


Download


http://sourceforge.net/projects/comet/

Suche

HomeSeite druckenSitemap

Hier finden Sie uns:

Databay AG
Hüttenstraße 7
D-52068 Aachen

Fon +49(0)241 / 9 91 21-0
Fax +49(0)241 / 9 91 21-59
E-Mail info@databay.de

© 2009 Databay AG | Impressum / Datenschutzhinweis