【问题标题】:Bot Emulator connected to Node.js service on a different machineBot Emulator 连接到另一台机器上的 Node.js 服务
【发布时间】:2023-04-11 14:45:02
【问题描述】:

我有一个在 Linux 桌面上运行 Bot Builder 代码的 Node.js 服务。 我在我的 Mac 上运行了一个 MSFT Bot Emulator,它与桌面位于同一个公司网络中。

我无法让机器人模拟器连接到 Node.js 服务以进行回调。我安装了 ngrok v2.1.18 并且模拟器(应用程序设置)配置了 ngrok 路径;但我不断收到一条错误消息,我需要为回调 URL 配置 ngrok。

从 Bot Emulator 日志中,ngrok 无法启动并出现此错误:

启动 ngrok 失败:恐慌:运行时错误:内存地址无效

【问题讨论】:

    标签: node.js botframework ngrok


    【解决方案1】:

    我没有使用过 ngrok,但我找到了一个黑客解决方案。

    打开文件botframework-emulator.app/Contents/Resources/app/app/server/botFrameworkService.js 并更改:

    this.localhostServiceUrl = `http://localhost:${port};
    

    到:

    const hostname = os.hostname();
    this.localhostServiceUrl = `http://${hostname}:${port}`;
    

    别忘了导入os 模块:

    const os = require("os");

    【讨论】:

    • 不错的 hack,但希望看到一个更好的解决方案,可以跨 SDK 升级 :)
    最近更新 更多