摘要:部分获得服务器更新断开支持跨域携带抱歉,您的浏览器不支持事件断开链接服务器端部分,为例只有包含的数据行后面有空行时才触发事件的值为注意换行符
html部分
获得服务器更新
服务器端部分,nodejs为例
var http = require("http"); // var sys = require("sys"); var fs = require("fs"); http.createServer(function(req, res) { // debugHeaders(req); if (req.headers.accept && req.headers.accept == "text/event-stream") { if (req.url == "/events") { sendSSE(req, res); } else { res.writeHead(404); res.end(); } } else { res.writeHead(200, {"Content-Type": "text/html"}); // res.write(fs.readFileSync(__dirname + "/sse-node.html")); res.write(fs.readFileSync(__dirname + "/sse.html")); res.end(); } }).listen(8000); function sendSSE(req, res) { res.writeHead(200, { "Content-Type": "text/event-stream", "Cache-Control": "no-cache", "Connection": "keep-alive" }); var id = (new Date()).toLocaleTimeString(); setInterval(function() { constructSSE(res, id, (new Date()).toLocaleTimeString()); }, 5000); constructSSE(res, id, (new Date()).toLocaleTimeString()); //res.end(); } //只有包含data:的数据行后面有空行时才触发message事件 //data:foo //data:bar //的event.data值为 "for/nbar" 注意换行符 function constructSSE(res, id, data) { res.write("id: " + id + " "); res.write("data: " + data + " "); } // function debugHeaders(req) { // sys.puts("URL: " + req.url); // for (var key in req.headers) { // sys.puts(key + ": " + req.headers[key]); // } // sys.puts(" "); // }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/81137.html
阅读 2101·2021-11-18 10:02
阅读 2848·2021-09-04 16:41
阅读 1140·2019-08-30 15:55
阅读 1404·2019-08-29 17:27
阅读 1066·2019-08-29 17:12
阅读 2533·2019-08-29 15:38
阅读 2853·2019-08-29 13:02
阅读 2829·2019-08-29 12:29