【问题标题】:Bot framework emulator on Docker and other issues with Bot Builder for Node.jsDocker 上的 Bot 框架模拟器和 Bot Builder for Node.js 的其他问题
【发布时间】:2016-10-27 19:49:39
【问题描述】:

我正在努力让 bot-framework-emulator 和 Bot Builder for Node.js Builder 在 Linux 下工作。

由于 Linux 的 bot-framework-emulator 需要单声道,我决定在 Docker 下使用以下 Dockerfile 运行它:

FROM mono:latest
EXPOSE 9000
COPY . BotFrameworkEmulator-Console/
CMD [ "mono",  "./BotFrameworkEmulator-Console/BFEmulator.exe" ]

我用命令启动它(同时暴露端口 9000):

docker run -it --rm -p 9000:9000 bfemulator

它开始很好,似乎工作正常。这是第一个问题。 bot-framework-emulator页面声明:

对于在 Mac 和 Linux 上开发的人,我们创建了一个仅使用单声道的控制台版本。

这是否意味着它不包含作为 bot emu 的 Windows 变体的 Web 界面?因为 netstat -al 报告 BFEmulator.exe 正在侦听端口 9000,但是当我访问 localhost:9000 时无法从 docker 主机访问。从 docker 容器内部也无法访问它。

第二个问题是我什至不能使用 BFEmulator 的控制台模式。在我的主机上,我正在运行 nodejs docker bot 示例,该示例在部署到“Microsoft Bot Framework”时运行良好。

示例代码如下:

var restify = require('restify');
var builder = require('botbuilder');

//=========================================================
// Bot Setup
//=========================================================

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
   console.log('%s listening to %s', server.name, server.url);
});

// Create chat bot
var connector = new builder.ChatConnector({
    appId: process.env.npm_package_config_MICROSOFT_APP_ID,
    appPassword: process.env.npm_package_config_MICROSOFT_APP_PASSWORD
});
var bot = new builder.UniversalBot(connector);
server.post('/api/messages', connector.listen());

//=========================================================
// Bots Dialogs
//=========================================================

bot.dialog('/', [
    function (session) {
        builder.Prompts.text(session, 'Hi! What is your name?');
    },
    function (session, results) {
        session.send('Hello %s!', results.response);
    }
]);

但是当使用 BFEmulator 运行时,上面的 bot 服务器报告:

ChatConnector: message received.
Error: Request to 'http://172.17.0.1:3978/v3/botstate/emulator/users/617d3bf8' failed: [404] Not Found
    at Request._callback (/home/finch/dev/mapilary/mapilary-bot/node_modules/botbuilder/lib/bots/ChatConnector.js:413:46)
    at Request.self.callback (/home/finch/dev/mapilary/mapilary-bot/node_modules/request/request.js:186:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/home/finch/dev/mapilary/mapilary-bot/node_modules/request/request.js:1060:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/home/finch/dev/mapilary/mapilary-bot/node_modules/request/request.js:980:12)
    at IncomingMessage.g (events.js:291:16)
    at emitNone (events.js:91:20)

我了解路径 v3/botstate/emulator/users 未在机器人示例中声明。所以我的问题是可以将模拟器与nodejs bot builder一起使用吗?

【问题讨论】:

    标签: node.js botframework botbuilder


    【解决方案1】:

    BotFramework Emulator 现在是一个开源项目,应该在 OS X、Windows 和 Linux 上运行良好。可以获取源代码here

    【讨论】:

      猜你喜欢
      • 2019-11-14
      • 1970-01-01
      • 2016-10-12
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多