如何在Alexa意图内发送webSocket数据?

时间:2019-05-23 14:31:58

标签: node.js websocket alexa-skills-kit jovo-framework

我正在尝试创建具有多个意图的Alexa技能和一个供后端使用的nodeJs服务器。我正在尝试通过WebSocket将意图之一的输入发送到python服务器以对其进行处理,然后检索python服务器的结果,但问题是我无法在意图内部使用websocket。 ps:我尝试通过websocket从nodeJs向python脚本发送一些消息,而没有引入Alexa意图,并且它正常工作

''''''python

class EchoWebSocket(websocket.WebSocketHandler):
    def open(self):
        print ("Websocket Opened")

    def on_message(self, message):
        print('aaaa')
        print('msg',message)
        print('type msg:',type(message))
        a = str(message)
        print('msg to str',a)
        print('type msg to str:',type(a))

    def on_close(self):
        print ("Websocket closed")

application = tornado.web.Application([(r"/", EchoWebSocket),])

if __name__ == "__main__":
    application.listen(991)
    tornado.ioloop.IOLoop.instance().start()

''''''

'''''app.js du Backend

const { App } = require('jovo-framework');
const { Alexa } = require('jovo-platform-alexa');
const { GoogleAssistant } = require('jovo-platform-googleassistant');
const { JovoDebugger } = require('jovo-plugin-debugger');
const { FileDb } = require('jovo-db-filedb');
const app = new App();
var res;

app.use(
    new Alexa(),
    new GoogleAssistant(),
    new JovoDebugger(),
    new FileDb()
);

var WebSocket =require('ws');

var socket = new WebSocket('ws://127.0.0.1:991/');

app.setHandler({

LAUNCH() {
            ......
},

StartIntent() {
    .....
},

ResponceIntent() {
    .......
},

alexaRepIntent() {
    res = this.$inputs.resp.value;
    console.log(res, 'is ur demande')
    this.tell(res);
    socket.on('open', function() {
        console.log('connection opened / printed from app.js');
        socket.send(res)
      }).on('close', function() {
        console.log('connection closed');
      }).on('error', function(e) {
        console.log('connection error', e);
      }).on('message', function incoming(data) {
        console.log(data)
        });
},

});

'''''''

''''''nodeJs输出

Local server listening on port 3000.
This is your webhook url: .....

To open Jovo Debugger in your browser, enter .

''''

''''''python输出

Websocket closed
Websocket Opened

''''

0 个答案:

没有答案