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 服务的主要内容,如果未能解决你的问题,请参考以下文章
可以 ping,但不能连接到来自同一网络的另一台机器上托管的端点 [重复]
禁用“允许远程连接到此服务器”后,我仍然可以从另一台机器连接