Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Welche Socket-Lib für eigene Adapter?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Welche Socket-Lib für eigene Adapter?

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active last edited by haus-automatisierung

      Ich habe bis heute nicht so richtig verstanden, welche Libs und Repos für was eigentlich gedacht sind. Es gibt einfach unglaublich viel und ich finde keine so richtige Übersicht.

      Hoffentlich kann mir jemand auf die Sprünge helfen, was der aktuellste Weg ist und welche Libs/Adapter "legacy" sind. 🙂

      Ich hätte gerne eine Socket-Verbindung in einem eigenen Tab mit Auth-Check / Session usw., aber möchte dann selbst Daten austauschen und verarbeiten. Also brauche ich einen eigenen Server im Adapter, richtig? Dafür gibts ja mehrere Libs:

      • Client: https://github.com/ioBroker/ioBroker.ws.client @iobroker/ws = npm @iobroker/ws
      • Server-Seite: https://github.com/ioBroker/ioBroker.ws.server @iobroker/ws-server = npm @iobroker/ws-server

      Das nutzen scheinbar die "alten" Materialize-Configs: <script type="text/javascript" src="../../socket.io/socket.io.js"></script>.
      Das ist wohl genau das gleiche wie <script type="text/javascript" src="./../../lib/js/socket.io.js"></script>.

      Kommentare in den Dateien passen jedenfalls dazu: v 1.1.2 (2022_08_18).

      Also ist das der "alte Weg" und nicht mehr zu verwenden?

      Neuere Adpater mit eigenem React-Tab (MUI v5)

      Diese nutzen scheinbar

      • Server: Welcher Server wird hier angesprochen? Der vom Admin-Adapter direkt?
      • Client: https://github.com/ioBroker/socket-client
        • wird z.B. genutzt von https://github.com/ioBroker/adapter-react-v5/

      Oder

      • Server: https://github.com/ioBroker/webserver (nur für Zertifikats-Validierung usw.)?
      • Client: ???

      Adapter (ohne Instanzen)

      Wofür sind dann eigentlich diese beiden "Adapter"? Die haben ja nichtmal eine Instanz. Der Admin-Adapter braucht die ja nicht - nur der Web-Adapter hat diese als Dependency:

      • https://github.com/ioBroker/ioBroker.socketio
      • https://github.com/ioBroker/ioBroker.ws

      und beide nutzen https://github.com/ioBroker/ioBroker.socket-classes richtig?

      Jey Cee 1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer @haus-automatisierung last edited by

        @haus-automatisierung sagte in Welche Socket-Lib für eigene Adapter?:

        Ich habe bis heute nicht so richtig verstanden, welche Libs und Repos für was eigentlich gedacht sind.

        Das geht nicht nur dir so 😉

        @haus-automatisierung sagte in Welche Socket-Lib für eigene Adapter?:

        Welcher Server wird hier angesprochen? Der vom Admin-Adapter direkt?

        Ja, das ist richtig. Ein Blick die Entwicklertools vom Browser und man sieht wohin die Verbindung aufgebaut wird.
        Am Ende ist es so auch die einzig Sinnvolle Variante, da ein Tab nur im Admin angezeigt wird und nicht alleine Funktioniert.

        @haus-automatisierung sagte in Welche Socket-Lib für eigene Adapter?:

        Client: https://github.com/ioBroker/socket-client

        wird z.B. genutzt von https://github.com/ioBroker/adapter-react-v5/

        Der Tab im Admin nutzt socket-client indirekt über die adapter-react-v5 Klasse.
        So auf die Schnelle hab ich jetzt keinen Unterschied gesehen zwischen AdminConnection und Connection. Beides braucht wohl als Gegenstück eine laufende Admin instanz, für externe Anwendungen kann man auch noch https://github.com/ioBroker/ioBroker.ws verwenden. Damit könnte man dann auf den Admin verzichten.
        Ich nehme mal an das auch der Web Adapter als Gegenstelle verwendet werden könnte, da dort auch Websockets integriert ist.

        https://github.com/ioBroker/ioBroker.socketio das ist der Vorgänger von ioBroker.ws der ist nur noch aus legacy Gründen vorhanden. Im Ursprung hat der die socket.io Lib verwendet, aber ich erinnere mich das es irgendwann massiv Probleme damit gegeben hat. Ging ne ganze weile bis das dann komplett Umgebaut wurde und die Socket.io API Nachgebildet wurde.

        @haus-automatisierung sagte in Welche Socket-Lib für eigene Adapter?:

        Server: https://github.com/ioBroker/webserver (nur für Zertifikats-Validierung usw.)?

        Am Anfang hat ja jeder Adapter die Zertifikate selbst verwaltet und sich um die Erneuerung bei Let's Encrypt gekümmert. @Rob_in hat dann Vorgeschlagen das ganze zu Zentralisieren und das dann auch Umgesetzt.

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

        Support us

        ioBroker
        Community Adapters
        Donate

        485
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        2
        2
        227
        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