Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Fehlermeldung beim Erstellen eines Adapters mit socket.io

    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

    Fehlermeldung beim Erstellen eines Adapters mit socket.io

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

      Hallo zusammen,
      ich habe mich in der letzten Zeit in die Funktionsweise von Adaptern eingearbeitet und denke, dass ich diese soweit verstehe. Jetzt möchte ich in einem neuen Adapter einen socket.io Client einbinden und stoße auf folgende zwei Probleme und wäre über Hilfe dankbar.

      "socket.io-client": "^3.1.1" ist unter node_modules installiert.

      1. Versuch:

      // CommonJS
      const io = require("socket.io-client");
      const socket = io("http://xxx.xxx.xxx.xxx:xxxx"); //bei mir steht natürlich eine valide IP Adresse
      

      Bei der Definierung socket bekomme ich eine Fehlermeldung:

      import io
      This expression is not callable.
        Type 'typeof import("c:/Adapter/iobroker.test/node_modules/socket.io-client/build/index")' has no call signatures.ts(2349)
      

      2. Versuch:

      // ES6 import or TypeScript
      import { io } from "socket.io-client";	
      let socketIO = io(http://xxx.xxx.xxx.xxx:xxxx); //bei mir steht natürlich eine valide IP Adresse
      

      Bei dieser Herangehensweise bekomme ich im Skript keine Fehlermeldung, aber der Adapter bleibt im ioBroker rot und generiert folgende Fehlermeldung:

      host.Server	2021-02-14 11:56:02.105	error	Caught by controller[1]: at internal/main/run_main_module.js:17:47
      host.Server	2021-02-14 11:56:02.105	error	Caught by controller[1]: at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
      host.Server	2021-02-14 11:56:02.105	error	Caught by controller[1]: at Function.Module._load (internal/modules/cjs/loader.js:708:14)
      host.Server	2021-02-14 11:56:02.105	error	Caught by controller[1]: at Module.load (internal/modules/cjs/loader.js:863:32)
      host.Server	2021-02-14 11:56:02.104	error	Caught by controller[1]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
      host.Server	2021-02-14 11:56:02.104	error	Caught by controller[1]: at Module._compile (internal/modules/cjs/loader.js:963:27)
      host.Server	2021-02-14 11:56:02.104	error	Caught by controller[1]: at wrapSafe (internal/modules/cjs/loader.js:915:16)
      host.Server	2021-02-14 11:56:02.104	error	Caught by controller[1]: SyntaxError: Cannot use import statement outside a module
      host.Server	2021-02-14 11:56:02.104	error	Caught by controller[1]: ^^^^^^
      host.Server	2021-02-14 11:56:02.103	error	Caught by controller[1]: import { io } from "socket.io-client";
      host.Server	2021-02-14 11:56:02.103	error	Caught by controller[1]: /opt/iobroker/node_modules/iobroker.test/main.js:13
      host.Server	2021-02-14 11:56:02.103	error	Caught by controller[0]: (node:4723) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
      host.Server	2021-02-14 11:56:01.865	info	        instance system.adapter.test.0 started with pid 4723
      host.Server	2021-02-14 11:55:58.950	info	        Restart adapter system.adapter.test.0 because enabled
      

      Mir stellen sich zwei Fragen:

      • Wo liegt der Fehler bei Versuch 1. In einem anderen Nodejs Skript habe ich das Ganze schon mal mit: const socket = io.connect("http://xxx.xxx.xxx.xxx:xxxx"); eingebunden (das connect funktioniert im obigen Beispiel auch nicht).
      • Bei Versuch 2 wäre ich dankbar für Hilfe bezüglich der Einbindung des "type": "module" -> sollte das das Problem sein.

      Vielen Dank!

      M UncleSam 2 Replies Last reply Reply Quote 0
      • M
        mischu @mischu last edited by

        @mischu Es war IDE trouble... Versuch 1 funktioniert

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

          @mischu Wieso willst du in einem Adapter socket.io verwenden? Wie hast du denn Adapter erstellt? Mit dem Adapter Creator? Du kannst ganz einfach auf die Funktionen der Adapter Klasse zugreifen; da brauchst du dich selber nicht um socket.io zu kümmern.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          574
          Online

          31.9k
          Users

          80.2k
          Topics

          1.3m
          Posts

          javascript template
          2
          3
          230
          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