我有一个可以在3G网络上工作的连接对象,它可以在可选择的端口上将数据发送到我的IP。
我想在node.js程序上读取从这个对象发送的数据,因为我服务器上的所有API都在node.js上
为此,我尝试创建一个像这样的“网络”服务器:
var net = require('net');
var server = net.createServer(function (socket) {
socket.on('data', function (data) {
var StrData = data.toString('ascii');
fs.appendFile("test.txt","data received : "+ StrData, function (err) {
if (err) throw err;
console.log(StrData);
});
});
});
server.listen(2000, '0.0.0.0');
我将对象发送的所有数据都收到我想要的“test.txt”文件。问题是,在接收到第一个数据后,我的服务器似乎关闭了连接,因此我的连接对象每次都必须创建另一个连接,并且只能发送第一个数据。
我的问题是:
如何让连接打开,以便对象可以发送所有数据?
我也试过'socket.io'和'http',但我无法得到我想要的东西。
答案 0 :(得分:0)
使用给定代码调试问题很难,您是否可以尝试向套接字添加错误侦听器并查看是否触发了任何错误:
socket.on('error', (err) => {
console.log(err);
}
我的猜测是你的客户端正在关闭套接字,认为请求超时(因为你没有返回某种类型的成功响应)。 net.createServer
创建一个TCP服务器,期望对所有请求做出响应。