我正在尝试连接:Google Home设备 - > API.AI Webhook - > RPi / nodejs但API.AI webhook需要https URL。我试过Hurl.it POST到我的路由器的http url并设置端口转发以使请求达到rpi,我可以看到帖子从运行nodejs的终端进来,它对请求做出了适当的响应。
但是当我将Hurl.it更改为https:// url时,将路由器的端口转发更改为将443个请求路由到相同的rpi地址,并更改用于监听80到443的nodejs app的.env端口。 ..如果我运行POST请求,路由器日志记录https请求,但nodejs应用程序没有响应,它只是继续侦听端口443.这是一个指向app.js的链接:
我如何弄清楚为什么nodejs服务器应用程序没有收到请求,或者它是否收到请求,那么为什么它没有响应请求呢?
答案 0 :(得分:2)
app.listen()
currently always uses http并且从不https,因此您需要创建自己的自定义https服务器并将app
作为请求处理程序传递:
require('https').createServer({ /* https config */ }, app)
.listen(process.env.PORT, function() {
console.log('Listening on port ' + process.env.PORT);
});
而不是:
app.listen(process.env.PORT, function() {
console.log('Listening on port ' + process.env.PORT);
});