Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Socket-IO: Log-Ausgaben empfangen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Socket-IO: Log-Ausgaben empfangen

    This topic has been deleted. Only users with topic management privileges can see it.
    • nokxs
      nokxs last edited by

      Hallo zusammen,

      ich bin gerade dabei etwas mit dem Socket.io-Adapter herumzuspielen, um eine kleine Visual Studio Code Erweiterung zu schreiben.

      Mit der Erweiterung möchte ich Skripte vom JS-Adapter downloaden/uploaden, sowie diese starten und stoppen können. Die ersten vier Sachen funktionieren schon rudimentär.

      Jetzt würde ich noch gerne (genau wie im Webinterface) die Logausgaben der JS-Skripte in einem VS Code Output anzeigen. Aktuell scheitere ich aber daran, dass ich keine Logs bekomme. Versucht habe ich folgendes:

          registerForLogs() {
              if (this.client && this.isConnected) {
                  this.client.on("log", (message: any) => {
                      console.log(message);
                  });
      
                  this.client.emit("requireLog", true, (err: any) => {
                      console.log(err);
                  });
              }
          }
      

      this.client ist meine Socket.io-Verbindung, welche ich vorher aufbaue.

      Der Code wird sauber durchlaufen und es fliegt keine Exception. Ich lande allerdings auch nie in Zeile 5, sprich ich bekomme keine Logs geschickt.

      Was muss ich machen, damit ich Log-Ausgaben geschickt bekomme?

      UncleSam 1 Reply Last reply Reply Quote 0
      • UncleSam
        UncleSam Developer @nokxs last edited by

        @nokxs Wow, cool! Diese Extension wird sicher vielen helfen.

        Welchen socket.io verwendest du? Den von Web oder den von Admin? Es könnte sein, dass es diese Funktion nur auf dem socket.io von Admin gibt.

        Wenn du hier schaust, wie Logs empfangen werden, glaube ich, hast du alles richtig gemacht:
        https://github.com/ioBroker/adapter-react/blob/master/src/Connection.js

        nokxs 1 Reply Last reply Reply Quote 0
        • nokxs
          nokxs @UncleSam last edited by nokxs

          @UncleSam Wenn außer mir die Extension sonst noch brauchen kann, lohnt sich die Entwicklung richtig. Sobald die Extension gut genug funktioniert, kann ich die im VS Code Marketplace veröffentlichen.

          Ich weiß gar nicht ganz genau, welchen socket.io von den genannten ich genau verwende. Aktuell verwende ich den separaten socket.io Adapter (https://github.com/ioBroker/ioBroker.socketio) und dessen Standard-Port 8084.

          Die Connection.js hatte ich schon angeschaut und war deswegen auch etwas verwirrt, dass es nicht funktioniert hat.

          Mir war gar nicht bewusst, dass es verschiedene socket.io Endpunkte gibt. Wäre es sinnvoller einen anderen Endpunkt zu verwenden?

          Edit: Ich hab es gerade mit Port 8081 versucht. Ich vermute mal, dass das der socket.io Endpunkt von Admin ist. Damit hat der Codeschnippsel von mir sofort funktioniert 👍. Im Endeffekt ist das ziemlich gut, da die Extension es so nicht erfordert bestimmte Adapter installiert zu haben.

          Allerdings ist die Doku vom Socket.io-Adapter irreführend, da hier auch requireLogs beschrieben ist, obwohl es nicht funktioniert (zumindest bei mir).

          UncleSam htrecksler 2 Replies Last reply Reply Quote 0
          • UncleSam
            UncleSam Developer @nokxs last edited by UncleSam

            @nokxs Super, ja genau Port 8081 ist für Admin. Bitte bedenke, dass der Passwort geschützt sein kann.

            Grundsätzlich sollte der Port 8081 nicht ausserhalb Admin genutzt werden, aber deine Extension ist ja eine "Erweiterung" von Admin, deshalb sehe ich kein Problem.

            Eröffne doch ein Issue auf GitHub (im socket.io Adapter), dass Logs nicht gehen (wahrscheinlich ist das Absicht aber nicht sauber dokumentiert).

            nokxs 1 Reply Last reply Reply Quote 0
            • nokxs
              nokxs @UncleSam last edited by

              @UncleSam Danke für deine schnelle Rückmeldung. Den Issue habe ich geschrieben und ich werde dann erst einmal Port 8081 verwenden.

              Das mit dem Passwort ist ein guter Hinweis.

              1 Reply Last reply Reply Quote 0
              • htrecksler
                htrecksler Forum Testing @nokxs last edited by

                @nokxs sagte in Socket-IO: Log-Ausgaben empfangen:

                Wenn außer mir die Extension sonst noch brauchen kann,

                ich hätte Interesse.

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                499
                Online

                31.9k
                Users

                80.2k
                Topics

                1.3m
                Posts

                socket-io
                3
                6
                376
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo