+ Antworten
Seite 2 von 2 ErsteErste 1 2
Ergebnis 11 bis 20 von 20

Thema: Websocket

  1. #11
    Registriert seit
    Jan 2012
    Beiträge
    580

    bei Chromium kommt
    Code:
    Uncaught DOMException: Failed to construct 'WebSocket': The subprotocol 'xxdfsdfcxsxdds...' is invalid.
    Jürgen

  2. #12
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,189

    Auf die schnelle kann ich dir leider keinen heißen Tipp geben Sofern das WebFront ja läuft muss es irgendeine Kleinigkeit an deinem Code sein. wenn du ein minimales Beispiel bei jsfiddle baust, kann ich evtl. zwischendurch mal reingucken. Nutz dazu als Endpoint z.B. unsere WebFront.info Seite.

    paresy

  3. #13
    Registriert seit
    Jan 2012
    Beiträge
    580

    das Script ist ganz simple
    HTML-Code:
    <!DOCTYPE html>
    <html>
        <head>
            <meta name="viewport" content="initial-scale=1.0, width=device-width" />
    
        </head>
        <body>
            <div id=8></div>
            <script  type="text/javascript" charset="UTF-8" >
    
                const ws = new WebSocket('wss://xy.example.com:443/wfc/12345/api/', [encodeURIComponent(btoa("webfront:passwd"))]);
                document.getElementById(8).innerHTML = ws.url;
    
                ws.onmessage = function(msg) {
                    var data = JSON.parse(msg.data);
                    if(data.SenderID == 34567 && data.Data[1]===true){
                        document.getElementById(8).innerHTML = data.Data[0];
                    }
                }
    
            </script>
        </body>
    </html>
    das Resultat lautet
    Code:
    Error during WebSocket handshake: Invalid status line
    Bei der Webfront.info gibt es kein Password. Was wird da bei btoa("webfront:.passwd") eingetragen?

    Jürgen
    Geändert von paresy (13.10.19 um 10:51 Uhr) Grund: Beispiel für 5.3+ angepasst

  4. #14
    Registriert seit
    Jan 2012
    Beiträge
    580

    ein erster Erfolg, wenn auch ein zweifelhafter...
    ...Safari und Chrome vertragen im Protocol-String keine Sonderzeichen. Wenn man aber die beiden "="-Zeichen am Ende des Strings entfernt, funktioniert es

    Webfront kriege ich weiterhin nicht zum Laufen.

    Jürgen

  5. #15
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,189

    Bist du auch auf der 5.2 unterwegs wenn das neue URL Format nutzt?

    paresy

  6. #16
    Registriert seit
    Jan 2012
    Beiträge
    580

    nein auf IP-Symcon 5.1, Raspberry Pi, 23.07.2019, f85391467278.
    Was ist denn das neue URL-Format?

    Habe inzwischen rausgefunden, dass Ihr das mit den Wegschneiden der =-Zeichen genauso macht. Dann passt das ja. Für mich bleibt aber die Frage: Wie bekomme ich den eingeschränkten WebFront-Datenfluss?

    Jürgen
    Geändert von Silberstreifen (16.08.19 um 13:41 Uhr)

  7. #17
    Registriert seit
    Jan 2012
    Beiträge
    580

    Talking So geht es

    Hallo paresy,
    nachdem ich den Thread nochmal von vorne gelesen habe, habe ich auch Deinen Hinweis mit Version 5.2 verstanden.

    Die neuen URLs funktionieren bei Firefox perfekt. Für die Kompatibilität mit z.B. Chrome oder Safari müssen mit folgender Änderung die Sonderzeichen entfernt werden

    JavaScript für "volle" API:
    Code:
    siehe Post weiter vorne.
    Restproblem:
    Unabhängig davon ob ich die "volle" API oder die "WebFront" API wähle kommen über den WebSocket immer ALLE Änderungen und nicht nur die vom gewählten WebFront.

    mein Wunsch:
    Kannst Du das so ändern, dass bei der "WebFront" API nur die Änderungen der im WebFront verwendeten Variablen gesendet werden?

    Das brächte richtig Freude

    Ansonsten megacoole Sache

    Viele Grüße
    Jürgen
    Geändert von paresy (13.10.19 um 10:50 Uhr)

  8. #18
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,189

    Magst du das noch einmal prüfen? Ich habe es soeben noch einmal getestet und bei mir werden nur die im WebFront erlaubten Variablen gesendet. Beachte: Wenn dein WebFront Zugruff auf Root hat, dann wird natürlich alles übermittelt. (Ebenfalls wenn die mobilen Apps diesen Zugriff haben!)

    paresy

  9. #19
    Registriert seit
    Jan 2012
    Beiträge
    580

    Super! Das war der entscheidende Hinweis. Die mobile App war noch „an“. Jetzt kommen nur noch die relevanten Daten.
    Danke
    Jürgen

  10. #20
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    22,189

    @Silberstreifen: Ich habe noch einen Fehler gefunden, der sehr selten auftreten kann. Die korrigierte Variante ist wieder in Post 3: Websocket Das passende IP-Symcon Update folgt heute noch.

    paresy

Ähnliche Themen

  1. Websocket verbindung auf ClockTwo
    Von danimerz im Forum Skripte, PHP, SQL
    Antworten: 8
    Letzter Beitrag: 17.02.17, 13:01
  2. Websocket Verbindung
    Von SteffenR im Forum Skripte, PHP, SQL
    Antworten: 10
    Letzter Beitrag: 20.06.16, 20:35
  3. Websocket
    Von Haibofan im Forum Skripte, PHP, SQL
    Antworten: 20
    Letzter Beitrag: 05.10.15, 12:14