节点 – 如何发送连续的HTTP响应回到客户端
我在节点js上工作,这对我来说是非常新的。 在这里,我有以下function,我从JS调用Http请求,并等待从Http响应返回的响应。 在这里,我得到了正确的答复,但在我的情况下,我在传感器设备上工作。 所以,我需要从HTTP获得连续的响应。 我正在使用
msg.res.send(200, 'Thanks for the request ');
并向客户发送“谢谢您的请求”。 但是,如果我使用
msg.res.send(200, 'Thanks for the request '); msg.res.send(200, 'Thanks for the request ');
像这样,第一个工作正常,第二个错误如下
错误:发送后无法设置标题。
可以请帮我解决这个问题,因为我需要从HTTP到客户端的持续响应。
提前致谢
由于Http是一个无状态的协议,只要你发送回应,连接就会结束。
实现你正在寻找的最好的方法是打开一个TCP连接到服务器。 然后您可以通过此连接继续发送数据。
var net = require('net'); var client = new net.Socket(); client.connect(1337, '127.0.0.1', function() { console.log('Connected'); client.write('Thanks you'); client.write('Another thank you'); }); client.on('data', function(data) { console.log('Received: ' + data); client.destroy(); // kill client after server's response }); client.on('close', function() { console.log('Connection closed'); });
如果http是唯一的select,你将不得不等待,直到你得到所有需要的数据,然后立即发送它。 通过res.status(200).send('谢谢'+'另一个谢谢')