回叙很多的朋友都会在使用eventsource是遇到一些问题:
今天,就总结一下eventsource的使用:
eventsource不同于websocket,它也是一个长轮询,只是不需要开发者自己写轮询了
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<div id="t"></div>
<script type="text/javascript">
var url="source.jsp";
if(EventSource)
{
var source=new EventSource(url);
source.onmessage = function(event)
{
document.getElementById("t").innerHTML += event.data + "<br />";
};
}
else
{
document.getElementById("t").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
</body>
</html>
<%@page language="java" contentType="text/event-stream; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import="java.util.Date"%>
<%
response.setHeader("pragma", "no-cache");
response.setHeader("expires", "0");
response.setHeader("Cache-Control", "no-cache");
System.out.println("data: " + new Date());
out.println("data: " + new Date());//这边最需要注意:要用两个换行,因为在eventsource读取数据是,会根据换行判断格式
out.println();
out.flush();
%>