这是我在Openshift上运行的Nodejs应用程序。
var express = require('express');
var net = require('net');
var app = express();
var sock;
var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'
//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,server_ip_address);// I want to connect to this server
// by a java socket
//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.end('i am ended');
});
app.listen(server_port,server_ip_address);
这是我的java客户端: socket = new Socket(“服务器的IP地址”,5132);
它在localhost上工作得很好但是当我在Openshift上部署它时。 我不知道如何连接到server.listen(5132,server_ip_address);
还有其他方法可以实现它。
答案 0 :(得分:1)
在OpenShift Online 80(http),443(https),8000(ws),8443(wss)上,只有以下端口公开为您的应用程序公开。只有http / websocket协议可用,因为所有请求都通过apache代理(用于http)或nodejs代理(用于websockets)进行路由。因此,您将无法在OpenShift Online上与您的应用程序建立原始tcp连接。
您可以查看Developer Portal的此页面,了解有关如何将连接路由到您的应用程序的更多信息:https://developers.openshift.com/en/managing-port-binding-routing.html