2016-04-13 6 views
0

Während die Bereitstellung von node.js mit socket.io bei OpenShift mit folgendem Fehler fehlschlägt: "Warten auf Anwendungsport (8080) zur Verfügung stehen ... Fern. Application ‚meraapp‘ konnte nicht gestartet werden, um (Port 8080 nicht verfügbar)“Die Bereitstellung von node.js mit socket.io bei OpenShift schlägt mit Fehler fehl: "konnte nicht gestartet werden (Port 8080 nicht verfügbar)"

ich möchte diesen Server verwenden, um meine android-Chat-Anwendung zu verbinden unten ist mein server.js

var express = require('express') 
    , routes = require('./routes') 
    , user = require('./routes/user') 
    , path = require('path') 
    , app = express() 
    , http = require('http').Server(app) 
    , io = require('socket.io')(http); 


app.set('port', process.env.OPENSHIFT_NODEJS_PORT || 8080); 
app.set('ipaddr', process.env.OPENSHIFT_NODEJS_IP); 
app.set('views', __dirname + '/views'); 
app.set('view engine', 'jade'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.bodyParser()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

io.on('connection', function(socket){ 
console.log('a user connected'); 
socket.on('new_message', function(data){ 
console.log('new_message' + JSON.stringify(data)); 
io.emit('new_message', data); 
}); 
socket.on('login', function(data) { 
console.log('login :' + data); 
}); 
socket.on("disconnect", function() { 
console.log("disconnect"); 
}); 
}); 

app.get('/', routes.index); 
app.get('/users', user.list); 

http.listen(app.get('port'), app.get('ipaddr'), function() { 
console.log('Socket.IO chat server listening on IP: ' + app.get('ipaddr') + ' and port ' + app.get('port')); 
}); 

bitte beachten Sie, dass ich diese Frage gesehen haben: Application failed to start (port 8080) not available aber das Sol In meinem Fall funktionierte das nicht.

Antwort

0

Port 8080 muss von einer anderen Anwendung verwendet werden. Versuchen Sie, den Port 8080 freizugeben, und versuchen Sie dann, Ihre Anwendung auszuführen. die Anwendung mit welcher Port beziehen sich unter url zu finden How do I find which application is using up my port

+0

liebe ashish. Das Problem ist nicht so einfach und direkt, wie es durch den Fehler in den Protokollen aussieht. Bitte gehen Sie über diesen Link http://stackoverflow.com/questions/31511724/application-failed-to-start-port-8080-not-available und lassen Sie mich wissen, wenn Sie eine Lösung für mein Problem haben. :) und danke für deine schnelle Antwort. –

1

auf Openshift Online (v2), websocket Unterstützung verfügbar ist - jedoch zur Zeit, es ist nur über diese Nicht-Standard-Ports zur Verfügung: 80008443

Sie Sie müssen keine serverseitigen Änderungen an Ihrem Code vornehmen, da der Load-Balancer von OpenShift Ihre Anwendung auf den Ports 80, 443, 8000 und 8443 verfügbar macht. Ihr clientseitiger Code muss jedoch eine Verbindung zu Ihrem Server herstellen Port 8000 oder 8443, um volle Unterstützung für Websockets zu erhalten.

https://blog.openshift.com/10-reasons-openshift-is-the-best-place-to-host-your-nodejs-app/#websockets

+0

Ich habe die Tipps aus dem von Ihnen vorgeschlagenen Link ausprobiert. aber immer noch mit dem Fehler kämpfen. Einige Links deuten darauf hin, dass dies aufgrund von fehlenden Modulen oder JavaScript-Fehlern auftreten kann. Ich überprüfe meinen Code erneut, um diese Fallstricke zu überprüfen. –