我正在尝试为我的嵌入式设备创建一个网络套接字Nodejs服务器,以便在OpenShift上发送数据。
我正在尝试创建这个简单的echo服务
var net = require('net');
var HOST = process.env.OPENSHIFT_NODEJS_IP;
var PORT = process.env.OPENSHIFT_NODEJS_PORT || 3000;
console.log('IP:' + HOST + ' Port:' + PORT);
var server = net.createServer(function(connection) {
console.log('client connected');
connection.on('end', function() {console.log('client disconnected');});
connection.write('Hello World!\r\n');
connection.pipe(connection);
});
server.listen(PORT, HOST , function() {
console.log('server is listening');
});
我根据OpenShift的端口绑定Guide我将客户端应用程序连接到端口8000.
For Testing我在桌面计算机上使用以下代码。
var net = require('net');
var HOST = 'nodejs-myapplication.rhcloud.com';
var PORT = 8000;
var client = net.connect(PORT, HOST, function() {
console.log('connected to server!');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('disconnected from server');
});
客户端脚本将连接到服务器并自行卡在那里。之后什么也没发生。
现在,如果我在浏览器中打开地址nodejs-myapplication.rhcloud.com:8000,NindijS Server会记录连接和断开的客户端,但是当连接NodeClient时,服务器不会显示任何更新。 Node Client只是表示连接并且没有做任何事情就停留在那里。
如果我在本地运行相同的脚本它工作正常,(本地我使用HOst作为127.0.0.1,端口作为3000)。
如何让TCP应用程序连接到Openshift NodeJS服务器?
设备将通过套接字发送ASCII输出,例如。 $ VAR,12,23,21 \ r \ n
我需要能够读取该数据,将其转换为JSON并将其发送到另一台服务器。
答案 0 :(得分:0)
必须在启用防火墙的DigitalOcean平台上加载它。 默认情况下,OpenShift不允许自定义端口,因此需要一种解决方法。