nodejs模拟服务
server.js 【启动命令:node server.js】
var http = require("http");
http.createServer(function(req, res) {
if(req.url === '/createSse') {
res.writeHead(200, {
"Content-Type": "text/event-stream",
"Cache-Control": 'no-cache',
"Connection": 'keep-alive',
"Access-Control-Allow-Origin": '*'
})
res.write('retry: 10000\n')
res.write("event: connecttime\n");
res.write("data: " + (new Date()) + "\n\n");
const interval = setInterval(function() {
res.write("data: " + (new Date()) + "\n\n");
}, 3000)
req.connection.addListener("close", function () {
clearInterval(interval);
}, false);
}
}).listen(9988, '127.0.0.1')
服务调用
const sseTest = () => {
var source = new EventSource("http://127.0.0.1:9988/createSse");
source.onopen = function (event) {
console.log('onopen===',event);
};
// 连接创建失败的回调事件
source.onerror = function (event) {
console.log('onerror===',event);
};
// 自定义事件,服务端返回时设置event字段为自定义事件名称
source.addEventListener("connecttime",
function (event) {
console.log('connecttime===',event);
},
false
);
// 接受到数据的回调事件,event未特殊设置时,默认是message
source.onmessage = function (event) {
console.log('onmessage===',event);
};
}