Ich verwende derzeit Botkit-SMS mit Node und Express, auf Heroku bereitgestellt, um eine mobile Anwendung zu erstellen, die SMS-Nachrichten an Benutzer senden kann, die noch nicht angemeldet sind. In meiner Datei server.js
öffne ich Ports für die API und den Messaging-Bot, der lokal funktioniert, aber bei der Bereitstellung auf Heroku bricht. Ich bekomme den Fehler Error: listen EADDRINUSE :::56136
. Ich weiß, das ist, weil beide versuchen, process.env.PORT zu verwenden. Gibt es eine Möglichkeit, das zu beheben?Öffnen Sie zwei verschiedene Ports in Heroku App
Relevante Code:
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!')
})
})
Nein, Sie können nur an den einen Port binden, den Heroku Ihnen gibt. Vielleicht kannst du etwas schlaues wie Proxy bestimmte Anfragen an deinen Bot-Dienst von Express machen. – danneu