Opossom: Web Chat

Hi. Ich würde gern ein Chat programmieren leider weiß ich nicht welchen Weg ich am Besten gehen sollte.
Es soll kein allgemeiner Chatraum sein sondern so dass immer nur 2 miteinander schreiben können.
Ich hab mir den Ajax Web Chat mit tutorial angeschaut und versteh jetzt ungefähr wie ich den Ajax Part machen muss...
leider lauft der Chat über eine Datenbank und würde bei vielen Usern den Server überlasten.
Eine Möglichkeit wäre vermutlich noch das ganze über eine ram db laufen zu lassen damit die Platte nicht ständig schreiben und lesen muss.
Was aber auch noch ncht ideal ist (Glaub ich).
Ich schätze mal dass der Server mit einem Socket Chat am Wenigsten ausgelastet ist oder?
Jetzt würde ich genre wissen ob es mit Sockets möglich ist die verbindungen zwischen allen Clients
über den gleichen Port laufen zu lassen so dass aber immer nur 2 miteinander schreiben können. Das einzige was mir da einfällt wäre
jedes Mal wenn wer was schreibt eine Variable mit zu schicken die den Empfänger enthält.
Wie kann ich das aber dann vom Server überprüfen lassen
so dass nicht alles an jedem geschickt wird und dann vom Client erst überprüft wird für wen der Text bestimmt ist?
Ich hoffe ihr könnt mir ein paar Tips geben wie ich das am Besten mach.
Danke
MfG Opossom

  1. Ich hab mir den Ajax Web Chat mit tutorial angeschaut und versteh jetzt ungefähr wie ich den Ajax Part machen muss...

    Wirklich per Ajax? Das gibt dann aber einen Chat der entweder oft pollen muss, oder einen der ziemlich langsam reagiert.

    Ich schätze mal dass der Server mit einem Socket Chat am Wenigsten ausgelastet ist oder?

    Es läuft doch alles über Sockets. Du meinst sicher einen bei dem eine Verbindung offen bleibt, über die bei Bedarf was geschickt wird und sonst nichts?

    Jetzt würde ich genre wissen ob es mit Sockets möglich ist die verbindungen zwischen allen Clients
    über den gleichen Port laufen zu lassen so dass aber immer nur 2 miteinander schreiben können.

    Ja, der Server muss halt wissen von wem er was wohin schicken soll. Aber das ist machbar.

    Das einzige was mir da einfällt wäre
    jedes Mal wenn wer was schreibt eine Variable mit zu schicken die den Empfänger enthält.

    Kann man auch.

    Wie kann ich das aber dann vom Server überprüfen lassen
    so dass nicht alles an jedem geschickt wird und dann vom Client erst überprüft wird für wen der Text bestimmt ist?

    Äh naja der Server muss halt nachsehen wo der Text hin soll und das dann dort hin schicken?!

    1. Hi. Danke für deine Antwort.

      Wirklich per Ajax? Das gibt dann aber einen Chat der entweder oft pollen muss, oder einen der ziemlich langsam reagiert.

      Naja Ajax brauch ich nur zum senden damit das ohne neuem request geht.
      Empfangen muss ich über den php socket und den inhalt zeig ich dann wieder mit Ajax an.

      Es läuft doch alles über Sockets. Du meinst sicher einen bei dem eine Verbindung offen bleibt, über die bei Bedarf was geschickt wird und sonst nichts?

      Ja genau so einen mein ich.

      Ja, der Server muss halt wissen von wem er was wohin schicken soll. Aber das ist machbar.

      Wie muss ich dass dann machen? Könntest du mir da einen Lösungsansatz geben?
      Danke. MfG Opossom

      1. Naja Ajax brauch ich nur zum senden damit das ohne neuem request geht.
        Empfangen muss ich über den php socket und den inhalt zeig ich dann wieder mit Ajax an.

        Die Aussagen schließen sich aber aus, dass du Ajax nur zum Senden und dann doch wieder auch zum Empfang brauchst.

        Empfangen muss ich über den php socket

        Was meinst du damit? Im Browser hast du keinen php Socket, den gibts nur auf dem Server.

        Wie muss ich dass dann machen? Könntest du mir da einen Lösungsansatz geben?

        Merk dir wer (also welcher Clientsocket) mit wem chatten will, dementsprechend wird dann alles was von x kommt nach y geschickt.