微软机器人框架结束callback

我正在用Nodejs开发一个使用Microsoft Bot框架的Chatbot,并且我想使用无服务器框架aws lambda上部署这个框架,但是为了做到这一点,我需要调用lambdacallback函数。

我无法find处理消息时如何callback(保存的数据并发送了所有必要的消息)。

我试图模拟响应,并调用callback,但它没有工作,微软僵尸框架继续处理消息,这里是当前处理程序我有

'use strict'; const DynamoDbStorage = require('./dynamo-db-storage').DynamoDbStorage let storage = new DynamoDbStorage() const connector = require('./channel')(storage) module.exports.message = (event, context, callback) => { connector.verifyBotFramework(context, getHandler(callback)); }; function getHandler(callback) { let status = 200 return { status: (code) => { status = code }, send: (data) => { const response = { statusCode: 200, body: JSON.stringify(data), }; callback(null, response) } } } 

这是我的channel.js

 const builder = require('botbuilder'); function getChannel(storage) { const connector = new builder.ChatConnector({ appId: process.env.MICROSOFT_APP_ID, appPassword: process.env.MICROSOFT_APP_PASSWORD }); const bot = new builder.UniversalBot(connector, { storage: storage }); //Bot logic //... return connector } module.exports = getChannel; 

       

网上收集的解决方案 "微软机器人框架结束callback"

你链接的代码似乎并没有调用你的res对象上的send函数。 你有尝试添加一个end()函数来调用callback函数。

 function getHandler(callback) { let status = 200 return { status: (code) => { status = code }, send: (data) => { const response = { statusCode: 200, body: JSON.stringify(data), }; callback(null, response) }, end: () => callback(null, "end called"); } }