2016-10-13 4 views
0

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!') 
    }) 
}) 
+0

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

Antwort

1

Ich weiß nicht, wie die Bot funktioniert, aber ich denke, dass die einzige mögliche Abhilfe ist es Websockets oder Socket.io here wie beschrieben verwenden zu machen, wie Heroku ‚doesn t erlauben die Verwendung von verschiedenen Ports

Verwandte Themen