Bot Emulator 连接到另一台机器上的 Node.js 服务

Posted

技术标签:

【中文标题】Bot Emulator 连接到另一台机器上的 Node.js 服务【英文标题】:Bot Emulator connected to Node.js service on a different machine 【发布时间】:2017-07-26 20:22:27 【问题描述】:

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

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

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

启动 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 升级 :)

以上是关于Bot Emulator 连接到另一台机器上的 Node.js 服务的主要内容,如果未能解决你的问题,请参考以下文章

无法从另一台机器连接到 Geth 节点 RPC

无法从同一网络上的另一台计算机连接到 Grapevine

可以 ping,但不能连接到来自同一网络的另一台机器上托管的端点 [重复]

禁用“允许远程连接到此服务器”后,我仍然可以从另一台机器连接

text 在SSH连接到另一台机器时更改iTerm2配置文件(即:背景颜色)

从另一台服务器连接到 aws 服务器上的 MongoDB