2016-02-25 25 views
0

這裏部署的Node.js服務器是我的代碼:無法在OpenShift

var express = require('express'); 
var net = require('net'); 
var app = express(); 
var sock; 


//first of all connect to a stable client 
console.log('waiting for connection\nfrom mobile server on port 5132'); 
var server = net.createServer(function(socket) { 
    sock = socket; 
}); 
server.listen(5132); 


//receive request from other clients 
app.get('/', function(req, res) { 
    // retriving mobileNumber and message 
    console.log('A new request\nreceived on 6544 '); 
    var mobileNumber = req.query.mobileNumber; 
    var message = req.query.message; 

    if (sock) { 
     sock.write(mobileNumber + "\n" + message + "\n"); 
     res.write(" Wah yyaar..."); 
    } 

    res.end('i am ended'); 
}); 

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080 
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1' 

app.listen(server_port, server_ip_address); 

以下是錯誤:

Git Post-Receive Result: failure 
Activation status: failure 
Activation failed for the following gears: 
56ce93357628e1c35b0000ff (Error activating gear: CLIENT_ERROR: 
Failed to execute: 'control start' for 
/var/lib/openshift/56ce93357628e1c35b0000ff/nodejs 
#<IO:0x00000001d7a388> 
#<IO:0x00000001d7a310> 
) 
Deployment completed with status: failure 

我認爲這個問題是由於端口5132

但解決辦法是什麼?

回答

2

您試圖在所有地址(0.0.0.0)或不允許的環回(127.0.0.1)上綁定到端口5132。您需要使用您用於端口8080綁定的IP地址,例如:

server.listen(5132,process.env.OPENSHIFT_NODEJS_IP);