Javascript Chat ausschließlich aktualisieren, sofern neue Nachrichten vorhanden sind

  • Hey,


    arbeite aktuell an einem Chatsystem.
    Dieses ist auch schon funktionsfähig, jedoch habe ich es aktuell etwas unsauber gelöst, indem ich alle 3 Sekunden per jQuery ein PHP Script aufrufe, welches prüft, ob eine neue Nachricht angezeigt werden muss.
    Wenn ja, wird der Chat refreshed. Allerdings dauert es dann 3-4 Sekunden, bis etwas angekommen ist und mein Webspace Hoster (PHP Friends) blockt öfters automatisch meine IP, weil natürlich zu viele Anfragen ankommen.


    Da wären wir auch bei meinem eigentlichen Problem: Wie könnte ich dies eleganter lösen, sodass an jeden, der den Chat im Browser geöffnet hat, ein direkter Request gesendet wird, den Chat zu aktualisieren, ohne dass man in einem zeitlich begrenzten Intervall eine Datenbank auf neue Einträge prüfen muss und die Nachricht auch relativ sofort ankommt?


    Habe bisher keinen Ansatz gefunden, daher habe ich aktuell noch keinen Code dazu.


    Danke schon mal im Voraus.


    Grüße

  • Websockets. dadurch kannst du die Nachrichten in Echtzeit übertragen, ohne immer eine neue Verbindung aufbauen zu müssen.
    Du lässt einfach beim ersten aufrufen des Chats die nachrichten die bisher da sind durch PHP oder so anzeigen, und baust dann eine Socket Verbindung auf, über die du dann nachrichten vom Client an den Server sendest und anders herum.
    Vorausgesetzt natürlich das PHP Friends sowas unterstütz.

    The fact is, I am right. And if you think I'm wrong, you are wrong.

  • Hey,


    danke für die Antwort, habe es bereits mal versucht.


    Ein Socket zu erstellen liefert keine Fehlermeldung, daher gehe ich davon aus, dass es auf PHP Friends aktiviert ist.
    Habe bisher einige Variationen getestet, jedoch bekomme ich aktuell noch keinen wirklichen Socket Server zustande.


    Dazu fehlt mir gerade leider etwas die Grundlage. Habe mir mal einige Tutorials zum Thema angeschaut, nur leider sind die größtenteils nicht sonderlich gut erklärt, Code anwesend, Erklärungen abwesend.


    Wie wäre denn der logische Aufbau eines solchen Servers und die des Clients?


    Danke schon mal.


    Grüße


    //E: habe folgendes mal versucht:


    websocket = new WebSocket("ws://localhost:9000/server.php");


    Was müsste man da als URI angeben? Habe es mal so versucht, wie es in einem Tutorial versucht wird zu erklären, aber funktionieren tut es lt. Fehlerkonsole nicht ("Es kann keine Verbindung aufgebaut werden").

  • Websockets. dadurch kannst du die Nachrichten in Echtzeit übertragen, ohne immer eine neue Verbindung aufbauen zu müssen.
    Du lässt einfach beim ersten aufrufen des Chats die nachrichten die bisher da sind durch PHP oder so anzeigen, und baust dann eine Socket Verbindung auf, über die du dann nachrichten vom Client an den Server sendest und anders herum.
    Vorausgesetzt natürlich das PHP Friends sowas unterstütz.

    Kannst du mir ein Beispiel näher bringen? Das würde mich sehr interessieren....

    Wer PALWAL-Sternchen vergibt, bekommt aus Prinzip ein Like 😏


    @palwal Donald Trump ist einer der besten Präsidenten welche die USA je hatte, meine Meinung.