j4nk3y: Update einer Chatfunktion

Beitrag lesen

Moin!

In den anderen Zweigen geht es ja meist um spezielle Randprobleme. Wie weit bist du mit der eigentlichen Aufgabe gekommen? Besteht da noch Klärungsbedarf und wenn ja?

Naja noch garnicht, ging ja bisher nur um den noch nicht vorhandenen Kontextwechsel.

use Net::WebSocket::Server;

    Net::WebSocket::Server->new(
        listen => 8080,
        on_connect => sub {
            my ($serv, $conn) = @_;
            $conn->on(
                handshake => sub {
                    my ($conn, $handshake) = @_;
                },
                utf8 => sub {
                    my ($conn, $msg) = @_;
                    $_->send_utf8($msg) for $conn->server->connections;
                },
                binary => sub {
                    my ($conn, $msg) = @_;
                    $_->send_binary($msg) for $conn->server->connections;
                },
            );
        },
    )->start;

und dazu gehöriges javascript etwa :

/* Nachricht senden */
function sendit(){
    var mesg = rltrim(document.getElementById('mesg').value);
    if( ! mesg.length ) {
        document.getElementById('mesg').value = '';
        return false;
    }

    ws.send(JSON.stringify({mesg: mesg, nickname: '%nickname%'}));
    document.getElementById('mesg').value = '';
    return false;
}


/* Nachricht im Browser anhängen */
ws.onmessage = function (e) {
    var dataobj = JSON.parse(e.data);
    var outtab = document.getElementById('outtab');

    var mesg = dataobj.mesg;
    var row = outtab.insertRow(0);
    var cell = row.insertCell(0);
    $(cell).css('font-family','Courier New, Courier, monospace');
    $(cell).text(mesg);

    var nickname = decodeURIComponent(dataobj.nickname);
    row = outtab.insertRow(0);
    $(row).css({'background-color': '#369', 'color': 'white'});
    cell = row.insertCell(0);
    $(cell).css('font-family','Courier New, Courier, monospace');
    $(cell).text(nickname+' schrieb um '+hms());
};

function hms(){
    var d = new Date();
    return d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
}

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. Ich habe mir aber schon einige Beispiele mit javascript angeschaut die da etwa so aussehen:

var connection = new WebSocket('ws://url', ['soap', 'xmpp']);

/ When the connection is open, send some data to the server
connection.onopen = function () {
  // Sending String
connection.send('your message');
};

// Log errors
connection.onerror = function (error) {
  console.log('WebSocket Error ' + error);
};

// Log messages from the server
connection.onmessage = function (e) {
  console.log('Server: ' + e.data);
};

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

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.

Mit anderen Worten, den Chatverlauf nicht zu speichern, ist gar kein Vorteil bezogen auf die Anforderungen. Auch ist es völlig unabhängig von der verwendeten Übertragungsmethode, ob die Daten gespeichert werden sollen oder nicht. Ich sehe grade nicht, warum Websocket einen Vorteil gegenüber anderen Verfahren bieten soll, was das Speichern oder Nichtspeichern von Daten angeht. Ob die eine oder andere Übertragungsmethode besser oder schlechter für den gegebenen Anwendungsfall ist, kann man herausfinden und das ist auch sinnvoll. Nur das Speichern hat da keine Aktie dran.

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.

Gruß Jo

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