首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于码头的Bot框架仿真器及Builder在Node.js中的其他问题

基于码头的Bot框架仿真器及Builder在Node.js中的其他问题
EN

Stack Overflow用户
提问于 2016-10-27 19:49:39
回答 1查看 906关注 0票数 5

我很难让bot-框架模拟器和在Linux下工作。

由于用于Linux的bot框架模拟器需要mono,所以我决定在Docker下使用以下Dockerfile运行它:

代码语言:javascript
复制
FROM mono:latest
EXPOSE 9000
COPY . BotFrameworkEmulator-Console/
CMD [ "mono",  "./BotFrameworkEmulator-Console/BFEmulator.exe" ]

我用命令启动它(还公开了端口9000):

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

它开始的很好,看起来很管用。这是第一个问题。bot-框架模拟器页面声明:

对于在Mac和Linux上进行开发的人,我们创建了一个只使用mono的控制台版本。

这是否意味着它不包含作为bot emu的Windows变体的web接口?因为netstat -al报告BFEmulator.exe是在监听端口9000,但是当我访问localhost:9000时,不能从docker主机访问。它也不能从码头集装箱内进入。

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

下面是示例代码:

代码语言:javascript
复制
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运行时,上面的机器人服务器报告:

代码语言:javascript
复制
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)

我理解在bot示例中没有声明path v3/botstate/emulator/users。那么,我的问题是否可以在nodejs bot生成器中使用仿真器?

EN

回答 1

Stack Overflow用户

发布于 2016-12-02 21:08:58

BotFramework模拟器现在是一个开源项目,在OS、Windows和Linux上都应该运行得很好。您可以获取源代码这里

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40293098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档