dedlfix: Update einer Chatfunktion

Beitrag lesen

Tach!

Laut pl sieht so, oder ähnlich, der Websocket in perl aus. Mit perl hatte ich noch garnichts zu tun, also verstehe ich da eher weniger.

Es gibt auch Websocket-Implementationen für PHP, beispielsweise Ratchet. Was da dafür unbedingt brauchst, ist der Zugriff auf den Server, denn Websocket ist serverseitig nicht einfach nur ein PHP-Script, das über Requests aufgerufen wird. Da muss ständig ein separater Server auf Verbindungsversuche lauschen. Und diesen Server musst du starten können, was nicht damit getan ist, per FTP Dateien ins DocumentRoot des Webservers zu legen.

Ich habe mir aber schon einige Beispiele mit javascript angeschaut die da etwa so aussehen:

Das sind grundsätzliche Beispiele, wie man ein paar Bytes Information überträgt. Was du noch brauchst, ist ein Protokoll, das festlegt, welche Nachrichten Client und Server austauschen und wie die zu formatieren sind. Das muss ja nichts großartig komplexes sein, aber ganz ohne Überlegungen wirst du nicht weit kommen. Ok, man kann sich auch bis zum Ziel durchscheitern, aber angenehm ist sowas nicht unbedingt.

Nur so sehr weit reicht mein javascript Horizont leider auch nicht, dass ich da nach meinen Wünschen munter los manipulieren könnte.

Der erste Schritt wäre Verständnis aufzubauen, was da in diesen einfachen Einführungsbeispielen passiert.

Zusätzlich schaffe ich es schon in der Ausgangsversion nicht, mehere Tabellen anzusprechen. Sprich der javascript Funktion list_chat() die ganzen Werte aus den Checkboxen mitzugeben und die dann in die chat_list.php zu migrieren. Genauso wie post_chat() einen Wert mitgeben damit chat_insert.php weiss, in welche Tabelle (wie und was) geschreiben werden soll.

Brich doch diese Anforderung mal runter auf kleine Teileinheiten. Solche kleinen Einheiten kann man nämlich wesentlich besser separat entwickeln und testen als zu versuchen, in einem großen Topf Spaghetti die Nudeln in eine Ordnung zu bringen. Der erste Schritt ist, die Eingabeelemente so auszulesen, dass die Daten in einer strukturtierten Form vorliegen. Also zum Beispiel ein Objekt erstellen und mit console.log() schauen, ob es gut aussieht. Unabhängig davon kann man auf der Serverseite probieren, Daten in mehrere Tabellen aufzuteilen (wenn das dein Ziel ist). Aber dazu nimmt man erstmal Testdaten unabhängig vom Client und sieht zu, es mit diesen hinzubekommen. Sonst hat man gleichzeitig zwei oder noch mehr Baustellen zu beachten, wenn was nicht funktioniert. Wenn diese Teile einzeln gut arbeiten, kann man sie zusammenbringen.

Sicher, dass reine speichern des Chatverlaufs hat performant nichts mit einem Websocket zutun. Es geht ja nur darum die chat_list() nicht jede Sekunde für jeden User der gerade "online" ist auszuführen und immer wieder die gleichen Daten neu aus der Datenbank zu ziehen.

Dann empfielt sich vielleicht ein Zeitstempel und den Client fragen zu lassen: Gib mir mal alle Daten ab $time. Der Websocket hat den Vorteil, dass man solche Polling-Anfragen nicht stellen muss, sondern der Server von sich aus neue Informationen schicken kann. Aber dazu muss man die Voraussetzungen für Websockets haben, womit wir wieder dabei sind, erstmal diese Voraussetzungen abzuklären.

dedlfix.

0 151

Update einer Chatfunktion

j4nk3y
  • html
  • javascript
  • php
  1. 2
    Felix Riesterer
    • datenbank
    • php
    • sicherheit
    1. 0
      j4nk3y
      1. 0
        Gunnar Bittersmann
    2. 0
      Gunnar Bittersmann
      1. 0
        Matthias Apsel
        1. 0
          Gunnar Bittersmann
      2. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
      3. 0
        Felix Riesterer
        1. 0
          j4nk3y
          • zur info
          1. 1
            Felix Riesterer
            • php
            • programmiertechnik
            • zur info
            1. 0
              j4nk3y
        2. 0
          Gunnar Bittersmann
    3. 0
      j4nk3y
      1. 0
        Felix Riesterer
        • php
        • programmiertechnik
        • sicherheit
        1. 0
          j4nk3y
          1. 0
            Der Martin
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
          2. 0
            Felix Riesterer
            1. 0
              j4nk3y
              1. 0
                Der Martin
                1. 0
                  j4nk3y
              2. 1
                dedlfix
                1. 0
                  Gunnar Bittersmann
                  • typografie
                2. 0
                  j4nk3y
                  1. 0
                    dedlfix
                    1. 0
                      j4nk3y
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            dedlfix
                            1. 0
                              j4nk3y
                              1. 0
                                Der Martin
                                1. 0
                                  j4nk3y
                                  1. 0
                                    Der Martin
                              2. 1
                                dedlfix
                                1. 0
                                  Der Martin
                              3. 0
                                Gunnar Bittersmann
                                • datenbank
                                • programmiertechnik
                                1. 0
                                  j4nk3y
        2. 0
          Der Martin
        3. 0
          Gunnar Bittersmann
          • internationalisierung
          • php
          1. 0
            Felix Riesterer
            1. 0
              Tabellenkalk
              • zitat
              • zu diesem forum
              1. 1
                Matthias Apsel
    4. 0
      1unitedpower
      1. 1
        dedlfix
        1. 1
          1unitedpower
          1. 0
            Christian Kruse
          2. 0
            dedlfix
            1. 0
              1unitedpower
              1. 0
                dedlfix
                1. 0
                  Christian Kruse
                  1. 0
                    dedlfix
                  2. 0
                    1unitedpower
                    1. 0
                      Christian Kruse
                      1. 0
                        1unitedpower
                    2. 0
                      dedlfix
                      1. 0
                        1unitedpower
                        1. 0
                          dedlfix
  2. 0
    j4nk3y
    1. 0
      Gunnar Bittersmann
      • html
      1. 0
        j4nk3y
        1. 0
          Gunnar Bittersmann
          1. 0
            j4nk3y
            1. 0
              Matthias Apsel
              1. 0
                j4nk3y
  3. 0
    j4nk3y
  4. 0
    pl
    1. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            dedlfix
            1. 0
              j4nk3y
              1. 0
                pl
                1. 0
                  j4nk3y
                  1. 0
                    pl
                    1. 0
                      dedlfix
                      1. -2
                        pl
                        1. 0
                          Matthias Apsel
                  2. 0
                    pl
              2. 0
                dedlfix
                1. 0
                  j4nk3y
                  1. 0
                    dedlfix
            2. 0
              j4nk3y
              1. 0
                dedlfix
      2. 0
        pl
  5. 0
    j4nk3y
    1. 0
      dedlfix
    2. 0
      j4nk3y
      1. 0
        j4nk3y
        1. 0
          pl
        2. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              dedlfix
              1. 0
                j4nk3y
          2. 0
            j4nk3y
            1. 0
              j4nk3y
  6. 0
    j4nk3y
    1. 0
      Der Martin
      1. 0
        j4nk3y
        1. 0
          dedlfix
          1. 0
            j4nk3y
            1. 0
              Der Martin
              1. 0
                j4nk3y
        2. 0
          Der Martin
          1. 0
            j4nk3y
            1. 1
              Felix Riesterer
              1. 0
                j4nk3y
                1. 0
                  Matthias Apsel
                  1. 0
                    j4nk3y
                    • menschelei
                2. 0
                  Felix Riesterer
                  • php
                  • programmiertechnik
                  • sql
                  1. 0
                    j4nk3y
                    1. 0
                      Der Martin
                      1. 0
                        j4nk3y
                        1. 0
                          Der Martin
                          1. 0
                            j4nk3y
                            • menschelei
                    2. 0
                      Felix Riesterer
                      1. 0
                        pl
                      2. 0
                        j4nk3y
                        1. 2
                          dedlfix
                          1. 0
                            j4nk3y
                            1. 0
                              dedlfix
                              1. 0
                                Christian Kruse
                                1. 1
                                  dedlfix
                  2. 0
                    j4nk3y
                  3. 0
                    j4nk3y
                    1. 0
                      Felix Riesterer
                      1. 0
                        dedlfix
                        1. 0
                          j4nk3y
                          1. 0
                            pl
                            1. 0
                              j4nk3y
                          2. 0
                            dedlfix
                      2. 0
                        j4nk3y
                        1. 0
                          Der Martin
                        2. 0
                          Felix Riesterer
                          1. 0
                            Der Martin
                            1. 0
                              dedlfix
                          2. 0
                            j4nk3y
                            1. 1
                              Der Martin
                              1. 0
                                j4nk3y
    2. 0
      j4nk3y
      1. 0
        dedlfix
        1. 0
          j4nk3y
          1. 0
            Christian Kruse
            1. 0
              j4nk3y
              1. 0
                Christian Kruse
              2. 0
                Matthias Apsel
                • zu diesem forum
                1. 0
                  j4nk3y