NEWS
Wie kann ich den Streamer.bot Client in JS verwenden?
-
Hallo,
ich hatte hier die Frage zur Verwendung von einem generellen WebSocket zur Anbindung von OBS gestellt: WebSocket Client in einem Skript verwenden? - das funktioniert auch wunderbar. Nun ergibt sich für ein neues Projekt aber die Anbindung an Streamer.bot. Es gibt hier einen offiziellen Client, welchen man eigentlich via npm installieren können sollte, wenn ich dieser Doku folge.
Ich habe ja nun schon verstanden, dass man das gewünschte npm Modul dem JavaScript Adapter bekannt machen muss und habe ihn entsprechend eingetragen und den Adapter neu gestartet:
Ich habe in Streamer.bot einen extra WebSocket Server gestartet und mit dem standard Websocket gelingt mir auch eine Verbindung. Ich habe eher das Problem, dass die Library irgendwie nicht so funktioniert wie ich mir das denke:
let sbServerAddress = '192.168.0.38'; let sbServerPort = '9090'; const StreamerbotClient = require('@streamerbot/client'); const client = new StreamerbotClient({ host: sbServerAddress, port: sbServerPort, endpoint: '/' });
Dabei bekomme ich diesen Fehler:
TypeError: StreamerbotClient is not a constructor
Wenn ich der oben verlinkten Anleitung folge, sollte das aber so funktionieren. Jemand eine Idee was ich da falsch mache? Oder liegt das an der Lib? Kann man da irgendwie noch besser sehen, wie genau der Fehler entsteht?
-
@worlik sagte in Wie kann ich den Streamer.bot Client in JS verwenden?:
let sbServerPort = '9090';
Da läuft in einem Standard-Setup schon die ioBroker-Datenbank.
-
@thomas-braun sagte in Wie kann ich den Streamer.bot Client in JS verwenden?:
@worlik sagte in Wie kann ich den Streamer.bot Client in JS verwenden?:
let sbServerPort = '9090';
Da läuft in einem Standard-Setup schon die ioBroker-Datenbank.
sischer datt?
9000 und 9001hätte ich jetzt gesagt
-
@homoran
Du hast natürlich Recht. Hatte ich gerade mit was anderem verwuchselt. -
@worlik evtl?
const { StreamerbotClient } = require('@streamerbot/client');
-
@Thomas-Braun Der Websocket Server läuft auf einem anderen PC, deswegen ist der Port eigentlich egal.
@MCU Interessant, so funktioniert es. Allerdings verstehe ich nicht, wann man die geschweiften Klammern braucht und wann nicht. Wie erkennt man das? Try and error? Beim WebSocket selbst sieht das ja zum Beispiel dann so aus:
const WebSocketClient = require('websocket').client;
Oder müsste das in der jeweiligen Doku stehen? Habe ich so leider nicht gefunden.
-
@worlik Man schaut in die Doku.
https://github.com/Streamerbot/client -
@mcu Okay, also sprich die von mir oben schon verlinkte Doku auf der offiziellen Webseite ist falsch:
Die Angabe:
import { StreamerbotClient } from '@streamerbot/client';
funktioniert übrigens auch in JavaScript so nicht.
Das hier funktioniert als einziges und das habe ich keiner Doku gefunden:
const { StreamerbotClient } = require('@streamerbot/client');
Ich kenne mich mich node.js nicht aus und schreibe sonst immer Vanilla JavaScript oder verwende für Oberflächen Dinge wie jQuery. Also keine Ahnung, wo nun hier die genauen Zusammenhänge sind. Aber egal, habe ja nun eine funktionierende Lösung. Vielen Dank für die Hilfe.
-
@worlik sagte in Wie kann ich den Streamer.bot Client in JS verwenden?:
Allerdings verstehe ich nicht, wann man die geschweiften Klammern braucht und wann nicht. Wie erkennt man das?
const WebSocketClient = require('websocket').client;
Das ist das gleiche wie
const { client } = require('websocket');
Ist nur eine andere Schreibweise und nennt sich "Object destructuring".
Object destructuring is a JavaScript feature that allows you to extract specific properties from an object and assign them to variables in a more concise and readable way. It's a way to "unpack" values from objects and simplify your code when working with objects with many properties.
-
@haus-automatisierung Vielen Dank.