Heyho,
Ich bin derzeit beschäftigt, eine Chat-Applikation auf Basis von php und mySQL zu entwerfen.
Alle 10 Sekunden hole Ich die aktuellen Chatnachrichten aus der mySQL Datenbank, was bereits super funktioniert.
Hier der Code:
Diese Ausgabe erfolgt in einem Frame. Das Script ist dauerhaft aktiv, was man an dem Ladebalken des Internet Explorers unten erkennen kann.
In einem anderen Frame möchte Ich, dass der Benutzer Text eingeben kann. Das funktioniert an sich auch, aber das Problem ist, dass scheinbar nicht zwei Prozesse gleichzeitig laufen können. Solange wie die Ausgabe läuft, muss mein anderes Text-Sende-Script warten... Quasi unendlich lang warten, da die Ausgabe niemals beendeet wird.
Jetzt steh Ich leider total aufm Schlauch und weis nicht, wie Ich am besten weitermachen soll. Per <meta> Tags einen 5 oder 10 Sekunden Refresh einbauen erachte Ich als eher nicht so gut. Ich denke dass mein Ansatz schon funktioniert, da z.B. der phpOpenChat oder der integrierte Chat beim Woltlab Forum meiner Meinung nach genauso funktioniert.
Beim Absenden-Button haben diese noch ein bisschen Javascript mit dabei? Ist das eventuell die Rätsels-Lösung? Leider kenne Ich mich mit Javascript überhaupt nicht aus
Für jede Hilfe und jeden Gedanken bin Ich echt dankbar!
EDIT: Sockets darf / kann Ich leider nicht verwenden, da diese auf dem Server deaktiviert sind.
Ich bin derzeit beschäftigt, eine Chat-Applikation auf Basis von php und mySQL zu entwerfen.
Alle 10 Sekunden hole Ich die aktuellen Chatnachrichten aus der mySQL Datenbank, was bereits super funktioniert.
Hier der Code:
PHP-Code:
$msg_id = 1;
while (true) {
$query = "SELECT * FROM site_chat_messages WHERE msg_id >= ".$msg_id." ORDER BY msg_id ASC";
$result = mysql_query($query, $dbconnection) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
// Die aktuelle ID
$msg_id = $row['msg_id'];
// Inkrementieren; An dieser Stelle wird beim nächsten Durchlauf der while Schleife weiter gemacht.
$msg_id++;
// Chat MSG ausgeben...
echo $row['msg_txt']."<br>\n";
}
sleep(10);
}
Diese Ausgabe erfolgt in einem Frame. Das Script ist dauerhaft aktiv, was man an dem Ladebalken des Internet Explorers unten erkennen kann.
In einem anderen Frame möchte Ich, dass der Benutzer Text eingeben kann. Das funktioniert an sich auch, aber das Problem ist, dass scheinbar nicht zwei Prozesse gleichzeitig laufen können. Solange wie die Ausgabe läuft, muss mein anderes Text-Sende-Script warten... Quasi unendlich lang warten, da die Ausgabe niemals beendeet wird.
Jetzt steh Ich leider total aufm Schlauch und weis nicht, wie Ich am besten weitermachen soll. Per <meta> Tags einen 5 oder 10 Sekunden Refresh einbauen erachte Ich als eher nicht so gut. Ich denke dass mein Ansatz schon funktioniert, da z.B. der phpOpenChat oder der integrierte Chat beim Woltlab Forum meiner Meinung nach genauso funktioniert.
Beim Absenden-Button haben diese noch ein bisschen Javascript mit dabei? Ist das eventuell die Rätsels-Lösung? Leider kenne Ich mich mit Javascript überhaupt nicht aus
Für jede Hilfe und jeden Gedanken bin Ich echt dankbar!
EDIT: Sockets darf / kann Ich leider nicht verwenden, da diese auf dem Server deaktiviert sind.
Kommentar