Tach!
Laut pl sieht so, oder ähnlich, der Websocket in perl aus. Mit perl hatte ich noch garnichts zu tun, also verstehe ich da eher weniger.
Es gibt auch Websocket-Implementationen für PHP, beispielsweise Ratchet. Was da dafür unbedingt brauchst, ist der Zugriff auf den Server, denn Websocket ist serverseitig nicht einfach nur ein PHP-Script, das über Requests aufgerufen wird. Da muss ständig ein separater Server auf Verbindungsversuche lauschen. Und diesen Server musst du starten können, was nicht damit getan ist, per FTP Dateien ins DocumentRoot des Webservers zu legen.
Ich habe mir aber schon einige Beispiele mit javascript angeschaut die da etwa so aussehen:
Das sind grundsätzliche Beispiele, wie man ein paar Bytes Information überträgt. Was du noch brauchst, ist ein Protokoll, das festlegt, welche Nachrichten Client und Server austauschen und wie die zu formatieren sind. Das muss ja nichts großartig komplexes sein, aber ganz ohne Überlegungen wirst du nicht weit kommen. Ok, man kann sich auch bis zum Ziel durchscheitern, aber angenehm ist sowas nicht unbedingt.
Nur so sehr weit reicht mein javascript Horizont leider auch nicht, dass ich da nach meinen Wünschen munter los manipulieren könnte.
Der erste Schritt wäre Verständnis aufzubauen, was da in diesen einfachen Einführungsbeispielen passiert.
Zusätzlich schaffe ich es schon in der Ausgangsversion nicht, mehere Tabellen anzusprechen. Sprich der javascript Funktion
list_chat()
die ganzen Werte aus den Checkboxen mitzugeben und die dann in diechat_list.php
zu migrieren. Genauso wiepost_chat()
einen Wert mitgeben damitchat_insert.php
weiss, in welche Tabelle (wie und was) geschreiben werden soll.
Brich doch diese Anforderung mal runter auf kleine Teileinheiten. Solche kleinen Einheiten kann man nämlich wesentlich besser separat entwickeln und testen als zu versuchen, in einem großen Topf Spaghetti die Nudeln in eine Ordnung zu bringen. Der erste Schritt ist, die Eingabeelemente so auszulesen, dass die Daten in einer strukturtierten Form vorliegen. Also zum Beispiel ein Objekt erstellen und mit console.log() schauen, ob es gut aussieht. Unabhängig davon kann man auf der Serverseite probieren, Daten in mehrere Tabellen aufzuteilen (wenn das dein Ziel ist). Aber dazu nimmt man erstmal Testdaten unabhängig vom Client und sieht zu, es mit diesen hinzubekommen. Sonst hat man gleichzeitig zwei oder noch mehr Baustellen zu beachten, wenn was nicht funktioniert. Wenn diese Teile einzeln gut arbeiten, kann man sie zusammenbringen.
Sicher, dass reine speichern des Chatverlaufs hat performant nichts mit einem Websocket zutun. Es geht ja nur darum die
chat_list()
nicht jede Sekunde für jeden User der gerade "online" ist auszuführen und immer wieder die gleichen Daten neu aus der Datenbank zu ziehen.
Dann empfielt sich vielleicht ein Zeitstempel und den Client fragen zu lassen: Gib mir mal alle Daten ab $time. Der Websocket hat den Vorteil, dass man solche Polling-Anfragen nicht stellen muss, sondern der Server von sich aus neue Informationen schicken kann. Aber dazu muss man die Voraussetzungen für Websockets haben, womit wir wieder dabei sind, erstmal diese Voraussetzungen abzuklären.
dedlfix.