今天看到这个HTML5里面的功能,然后想自己实现一下。。但是按照教程把Header改了。前段没有内容输出。。但是收得到.
env.SetHeader(env.ResponseWriter, "Content-Type", "text/event-stream")
env.SetHeader(env.ResponseWriter, "Cache-Control", "no-cache")
flusher, ok := env.ResponseWriter.(http.Flusher)
if !ok {
http.Error(env.ResponseWriter, "Streaming unsupported!", http.StatusInternalServerError)
return
}
fmt.Fprintf(env.ResponseWriter, "data: updated data")
flusher.Flush()
env是自己封装的里面包含了每次请求的Request,和ResponseWriter.求解~
if(typeof(EventSource)!=="undefined") {
//create an object, passing it the name and location of the server side script
var eSource = new EventSource("/partner/dashboard/update");
//detect message receipt
eSource.onmessage = function(event) {
//write the received data to the page
document.getElementById("update").innerHTML = event.data;
};
}
else {
document.getElementById("serverData").innerHTML="Whoops! Your browser doesn't receive server-sent events.";
}
以上是前端的代码。服务器三秒一更新,状态码是200,但是就是没有数据。Content-Type, 什么的都是对的。