0

我目前正在将 botkit-sms 与 Node 和 Express 一起使用,部署在 Heroku 上以创建一个可以向尚未注册的用户发送 SMS 消息的移动应用程序。在我的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!')
  })
})
4

1 回答 1

2

我不知道机器人是如何工作的,但我认为唯一可能的解决方法是让它使用 Websockets 或 Socket.io 如此处所述因为 Heroku 不允许使用不同的端口

于 2016-10-13T20:23:46.943 回答