我目前正在使用带有Node和Express的botkit-sms,部署在Heroku上创建一个移动应用程序,可以向尚未注册的用户发送短信。在我的server.js
文件中,我打开了API和消息机器人的端口,它在本地工作但在我部署到Heroku时中断。我收到错误Error: listen EADDRINUSE :::56136
。我知道这是因为他们都试图使用process.env.PORT。有没有办法解决这个问题?
相关代码:
import express from 'express';
const app = express();
const TwilioSMSBot = require('botkit-sms')
const controller = TwilioSMSBot({
account_sid: ACCOUNT_ID,
auth_token: AUTH_TOKEN,
twilio_number: TWILIO_NUMBER
})
const port = process.env.PORT || 9090;
app.listen(port);
app.get('/', (req, res) => {
res.send('hi');
});
let bot = controller.spawn({})
controller.setupWebserver(process.env.PORT || 3001, function (err, webserver) {
controller.createWebhookEndpoints(controller.webserver, bot, function () {
console.log('TwilioSMSBot is online!')
})
})
答案 0 :(得分:2)
我不知道机器人是如何工作的,但我认为唯一可行的解决方法是让它使用Web here所描述的Websockets或Socket.io,因为Heroku不允许使用不同的端口