You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ioBroker JavaScript中使用Streamer.bot官方客户端遇构造报错求助

问题

我希望在ioBroker的JavaScript实例中,使用Streamer.bot官方客户端连接其WebSocket服务,已完成以下操作:

  • 在JavaScript实例中添加npm源@streamerbot/client
  • 在Streamer.bot中配置对应IP的WebSocket服务器,防火墙已开放

但编写代码构造客户端实例时,始终报错:

javascript.0 (19364) script.js.streaming.Streamer_bot: TypeError: StreamerbotClient is not a constructor

原生WebSocket连接可成功,但希望使用官方专用客户端,请问遗漏了什么?

构造客户端的代码

let sbServerAddress = '192.168.0.38';
let sbServerPort = '9090';
const StreamerbotClient = require('@streamerbot/client');

const client = new StreamerbotClient({
    host: sbServerAddress,
    port: sbServerPort,
    endpoint: '/'
});

原生WebSocket连接代码

const WebSocketClient = require('websocket').client;

function connectws() {
    const ws = new WebSocketClient();

    // 重连
    ws.on('close', function () {
        console.log('Websocket closed');
        setTimeout(connectws, 5000);
    });

    ws.on('connectFailed', function(error) {
        console.log('Connect Error: ' + error.toString());
    });

    ws.on('connect', function (connection) {
        console.log('Websocket opened');
    });

    ws.connect("ws://" + sbServerAddress + ":" + sbServerPort + "/", null);
}

connectws();

解决方案

1. 修正导入方式

@streamerbot/client采用命名导出而非默认导出,直接require整个模块会拿到包含构造函数的对象,而非构造函数本身,导致报错。修改导入语句为:

const { StreamerbotClient } = require('@streamerbot/client');

2. 确认包已正确安装

添加npm源后需确保包已成功安装:

  • 进入ioBroker的JavaScript实例设置
  • 在「额外的npm模块」中移除@streamerbot/client,保存后重新添加并再次保存,触发重新安装
  • 查看实例日志,确认无安装失败提示

3. 检查版本兼容性

确保安装的@streamerbot/client版本与Streamer.bot服务器版本匹配,版本不兼容可能导致导出结构或功能异常。

4. 验证配置参数

核对官方客户端的配置参数,比如endpoint是否符合Streamer.bot的WebSocket端点设置,部分场景下端点可能不是默认的/。


内容的提问来源于stack exchange,提问作者SuperNova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:08