【问题标题】:Net Socket Connections in OpenShiftOpenShift 中的网络套接字连接
【发布时间】:2016-02-03 05:21:32
【问题描述】:

我正在尝试为我的嵌入式设备创建一个网络套接字 Nodejs 服务器,以便在 OpenShift 上发送数据。

我正在尝试创建这个简单的回显服务

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。

为了测试,我在我的台式机上使用以下代码。

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,NodeJS 服务器会记录客户端连接和断开连接,但是当 NodeClient 连接时,服务器不会显示任何更新。节点客户端只是说已连接并保持在那里而不做任何事情。

如果我在本地运行相同的脚本,它工作正常,(在本地我使用 HOst 作为 127.0.0.1 和端口作为 3000)。

如何让 TCP 应用程序连接到 Openshift NodeJS 服务器?

设备将通过套接字发送 ASCII 输出,例如。 $VAR,12,23,21\r\n

我需要能够读取该数据,将其转换为 JSON 并将其发送到另一台服务器。

【问题讨论】:

    标签: node.js sockets tcp


    【解决方案1】:

    它必须在启用防火墙的 DigitalOcean 等平台上加载。 默认情况下,OpenShift 不允许自定义端口,因此需要一种解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 2020-06-27
      • 2013-07-24
      • 2015-06-04
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多