Resourcenschonender Chat mit PB und PHP/MySQL
Resourcenschonender Chat mit PB und PHP/MySQL
Ein ScrollAreaGadget für die Chatausgabe, die Daten sind in einem String.
Beim Klick auf "Absenden" wird die Textzeile an den String angehangen,
im Chatfenster ausgeben und an den Server übertragen.
Aller 5 Sekunden wird in der Onlinedatenbank nachgeschaut ob
neue Zeilen vorhanden (Abfrage mit Timestamp).
Die neuen Zeilen (nicht der komplette Inhalt) werden runtergeladen und zum String hinzugefügt und ausgegeben.
Ist das halbwegs sinnvoll? Find die Lösung immer noch besser als irgendwelche Meta-Refresh-Chats...
Hab hier schon einige P2P-Chats gesehen, aber meine Leute wollen sich
nicht mit irgendwie IPs, Servern und Clients rumschlagen, zumal es
in einer Firma mit Proxy wohl auch nicht funktionieren würde...
Beim Klick auf "Absenden" wird die Textzeile an den String angehangen,
im Chatfenster ausgeben und an den Server übertragen.
Aller 5 Sekunden wird in der Onlinedatenbank nachgeschaut ob
neue Zeilen vorhanden (Abfrage mit Timestamp).
Die neuen Zeilen (nicht der komplette Inhalt) werden runtergeladen und zum String hinzugefügt und ausgegeben.
Ist das halbwegs sinnvoll? Find die Lösung immer noch besser als irgendwelche Meta-Refresh-Chats...
Hab hier schon einige P2P-Chats gesehen, aber meine Leute wollen sich
nicht mit irgendwie IPs, Servern und Clients rumschlagen, zumal es
in einer Firma mit Proxy wohl auch nicht funktionieren würde...
1. alle 5 Sek. halte ich nicht für sinnvoll
2. PHP/MySQL genauso wenig, da ein PHP-Skript für gewöhnlich nach 30sek. gekillt wird - und so wie ich dich verstehe, soll der Client einmal connecten, und danach nur noch Daten empfangen bzw. senden. Das geht AFAIK auch nicht, da PHP nicht pushen kann (ist in Verbindung mit Browsern auch absolut unnötig)
Mein Vorschlag: Du hast irgendwo Root-Zugriff (Windows / Linux) und baust dir beide Seiten (Client & Server) mit PB. Das ist imho besser geeignet als PHP (zumindest für diese Aufgabe) .
Simon
2. PHP/MySQL genauso wenig, da ein PHP-Skript für gewöhnlich nach 30sek. gekillt wird - und so wie ich dich verstehe, soll der Client einmal connecten, und danach nur noch Daten empfangen bzw. senden. Das geht AFAIK auch nicht, da PHP nicht pushen kann (ist in Verbindung mit Browsern auch absolut unnötig)
Mein Vorschlag: Du hast irgendwo Root-Zugriff (Windows / Linux) und baust dir beide Seiten (Client & Server) mit PB. Das ist imho besser geeignet als PHP (zumindest für diese Aufgabe) .
Simon
Windows XP Pro SP2 - PB 4.00Ich bin Ausländer - fast überall
Hallobluejoke hat geschrieben:1. alle 5 Sek. halte ich nicht für sinnvoll
2. PHP/MySQL genauso wenig, da ein PHP-Skript für gewöhnlich nach 30sek. gekillt wird - und so wie ich dich verstehe, soll der Client einmal connecten, und danach nur noch Daten empfangen bzw. senden. Das geht AFAIK auch nicht, da PHP nicht pushen kann (ist in Verbindung mit Browsern auch absolut unnötig)
Mein Vorschlag: Du hast irgendwo Root-Zugriff (Windows / Linux) und baust dir beide Seiten (Client & Server) mit PB. Das ist imho besser geeignet als PHP (zumindest für diese Aufgabe) .
Simon
30 Sek Kill? PHP?
Nein es gibt in PHP einen Befehl der den Timeout ausschltet (weiss jetzt aber nicht wie er heisst) muss aber vom Server so konfiguriert sein ist aber meist leider nicht. Und der PHP-Befehl Flush() schickt alles sofort an den Server also mit PHP Streamen wäre kein Problem
Es gibt schon genügend PHP-Streaming-Chats nur der Traffic verbrauch ist halt auch dementsprechend hoch
In dem Fall ist das IMHO schon sinnvoll.
Ist ja dann im Grunde nur ein Browserchat, für den halt ein spezieller "Browser" programmiert wurde, wodurch Traffic gespart werden kann.
Die Frage ist aber, ob dein Hoster genug Zugriffe auf die DB zulässt und ausreichend schnell ist.
EDIT: Ich würde einen P2P Chat bevorzugen, bei dem ausschließlich die Onlineliste mit den zugehörigen IPs durch einen Server mit PHP/MySQL verwaltet wird. Dann ist schon mal das Traffic- und das IP-Problem erledigt.
Ist ja dann im Grunde nur ein Browserchat, für den halt ein spezieller "Browser" programmiert wurde, wodurch Traffic gespart werden kann.
Die Frage ist aber, ob dein Hoster genug Zugriffe auf die DB zulässt und ausreichend schnell ist.
EDIT: Ich würde einen P2P Chat bevorzugen, bei dem ausschließlich die Onlineliste mit den zugehörigen IPs durch einen Server mit PHP/MySQL verwaltet wird. Dann ist schon mal das Traffic- und das IP-Problem erledigt.
Windows XP Pro SP2 - PB 4.00Ich bin Ausländer - fast überall
-
DarkDragon
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Ich hab das genauso mal gemacht und alle 5 Sekunden neu conntected und das PHP Script ausgeführt. Hat wunderbar funktioniert nur war es lahm. Außerdem: Warum nicht einfach Connection-Status: Keep-Alive in HTTP einfügen?
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Eben! Jetzt weißt Du was ich meinebluejoke hat geschrieben:In dem Fall ist das IMHO schon sinnvoll.
Ist ja dann im Grunde nur ein Browserchat, für den halt ein spezieller "Browser" programmiert wurde, wodurch Traffic gespart werden kann.
Naja ich rechne mal im Höchstfall mit 15 Usern im Chat - das wird HostEurope schon verkraftenDie Frage ist aber, ob dein Hoster genug Zugriffe auf die DB zulässt und ausreichend schnell ist.
Die Frage ist eher ob PB das so schnell mit dem Connecten hinbekommt...
Richtig, die IP wird meinem Server beim Einloggen ja mitgeteilt... aber was ist, wenn der User über einem Proxy drin ist und ich eine Nachricht an diese ProxyIP schicke?EDIT: Ich würde einen P2P Chat bevorzugen, bei dem ausschließlich die Onlineliste mit den zugehörigen IPs durch einen Server mit PHP/MySQL verwaltet wird. Dann ist schon mal das Traffic- und das IP-Problem erledigt.