Node.js Alexa Skill在lambda、MQTT异步通信中开发
我正在使用AWS lambda和ask sdk开发Alexa技能。 在这项技能中,我需要使用mqtt进行通信,我将mqtt库添加到项目中。 要进行这种类型的通信,我们需要异步通信。 我遵循下一个亚马逊指南: 该指南解释了HTTP通信,但我没有让它与MQTT一起工作 我的项目结构如下:Node.js Alexa Skill在lambda、MQTT异步通信中开发,node.js,aws-lambda,mqtt,alexa-skills-kit,alexa-app,Node.js,Aws Lambda,Mqtt,Alexa Skills Kit,Alexa App,我正在使用AWS lambda和ask sdk开发Alexa技能。 在这项技能中,我需要使用mqtt进行通信,我将mqtt库添加到项目中。 要进行这种类型的通信,我们需要异步通信。 我遵循下一个亚马逊指南: 该指南解释了HTTP通信,但我没有让它与MQTT一起工作 我的项目结构如下: const Alexa = require('ask-sdk'); const BienvenidaHandler = { canHandle(handlerInput) { cons
const Alexa = require('ask-sdk');
const BienvenidaHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'LaunchRequest';
},
handle(handlerInput) {
return handlerInput.responseBuilder
.speak('Hello MQTT ')
.reprompt('wait') //Para que no se cierre la sesión tras la bienvenida.
.withSimpleCard(SKILL_NAME, 'Bienvenido')
.getResponse();
},
};
const ConversorHandler = {
canHandle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
return request.type === 'IntentRequest'
&& request.intent.name === 'Conversor';
},
handle(handlerInput) {
**//HERE WE MUST SUBSCRIBE/PUBLISH to the BROKER.**
var mqtt = require('mqtt')
var client = mqtt.connect('mqtt://test.mosquitto.org')
var texto = 'No data'
client.on('connect', function () {
client.subscribe('presence', function (err) {
if (!err) {
client.publish('presence', 'Hello mqtt')
}
})
})
client.on('message', function (topic, message) {
// message is Buffer
console.log(message.toString())
texto = message.toString()
client.end()
})
**//ALEXA SPEAK WITH MQTT DATA. (DOES NOT WORK)**
return handlerInput.responseBuilder
.speak('test mqtt, '+texto)
.reprompt(HELP_REPROMPT)
.getResponse();
},
};
...
const skillBuilder = Alexa.SkillBuilders.standard();
exports.handler = skillBuilder
.addRequestHandlers(
BienvenidaHandler,
ConversorHandler,
HelpHandler,
ExitHandler,
SessionEndedRequestHandler
)
.addErrorHandlers(ErrorHandler)
.lambda();
这种读取MQTT的方法不起作用。
Alexa必须使用MQTT数据说话,但对于read,我们需要一个异步函数,当Alexa说话时,我们没有MQTT数据
您知道如何使用Alexa Skill读取MQTT数据吗
谢谢