我正在使用客户端向Node.js服务器发送Post请求来执行长时间的请求。在此过程中,我希望服务器端能让客户端知道已经完成了多少工作和当前的步骤。因此我想知道是否有一种方法可以让服务器端不断地发送事件,在客户端可以接收到。这类事件可以使用$(document).on() 接收。但并不限于此种方式。
似乎$.post只从服务器端获取一次数据。那么在发布后如何能够持续地接收服务器端数据呢?
似乎$.post只从服务器端获取一次数据。那么在发布后如何能够持续地接收服务器端数据呢?
var serverEvents = new EventSource('http://localhost:8080/events');
serverEvents.addEventListener('message', function(event){
console.log(event.data);
});
data: some data
data: {"name": "bobby"}
const http = require('http');
const server = http.createServer((req, res) => {
if( req.url === '/events'){
res.writeHead(200, {
'Content-Type': 'text/event-stream',
'Cache-Control': 'no-cache',
'Access-Control-Allow-Origin': '*'
});
setTimeout(() => {
res.write('data: some data\n\n');
}, 1000);
}
});
server.listen(8080, '127.0.0.1');