NEWS
Fehlermeldung beim Erstellen eines Adapters mit socket.io
-
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!
-
@mischu Es war IDE trouble... Versuch 1 funktioniert
-