Frage von mrkuddel, 34

WebSocket, WebRTC, Ajax: Was benutzt man für einen Onlinechat?

Ich bin dabei einen kleinen Onlinechat für Testzwecke zu bauen.

Nun bin ich dabei mit AJAX alle 2 Sekunden eine Anfrage zu senden, ob neue Daten in meiner Datenbank vorhanden sind. Ich hätte es gerne, dass ich meine Bandbreite des Servers nur belaste, wenn auch neue Nachrichten vorhanden sind.

Gibt es da eine Lösung? Ich habe einige Dinge über WebRTC, Comet und/bzw. WebSockets gelesen kann damit aber kaum etwas anfangen.

Ich würde mich sehr über Eure Hilfe freuen! :)

Antwort
von regex9, 13

Comet-Techniken wie long polling sind im Grunde Techniken, um eine Server-Client-Verbindung für längere Zeit aufrecht zu erhalten. Long polling ist bspw. mit einem Timer und AJAX-Requests sehr einfach realisierbar:

(function poll() {
setTimeout(function() {
$.ajax({ url: "server", success: function(data) {
// ...
}, dataType: "json", complete: poll });
}, 30000);
})();

Der Server bekommt so mehr Zeit, auf eine Anfrage zu antworten.

Einfacher geht es bei WebSockets, denn in dem Fall besteht eine durchgehende Verbindung. Der Server kann eigenständig antworten, ohne auf den Request des Client warten zu müssen.

Ich würde dir daher WebSockets empfehlen. 

Kommentar von mrkuddel ,

Danke!
Ich werde versuchen einen Chat mit Hilfe von Socket.io zu bauen.
Mal schauen, ob ich meinen vorhandenen PHP/Ajax Chat darauf umbauen kann. :)

Antwort
von LeonardM, 15

Wenns mit js sein soll websockets. Wenn flash dann gleich tcp..

Keine passende Antwort gefunden?

Fragen Sie die Community