SSE java服务端
时间: 2023-10-11 19:22:18 浏览: 109
以下是使用 Java 实现 SSE 服务端的简单示例代码:
```java
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/sse")
public class SSEServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置响应头,表明使用了 SSE 协议
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Connection", "keep-alive");
PrintWriter out = response.getWriter();
// 向客户端发送数据
while (true) {
String data = "data: " + new Date().toString() + "\n\n";
out.write(data);
out.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
```
运行上述代码后,可以使用浏览器访问 http://localhost:8080/sse ,即可看到页面不断地输出当前时间。该示例中,我们使用 while 循环定时向客户端发送数据,客户端通过监听 `message` 事件并处理数据来实现实时更新页面的效果。注意,由于 SSE 是基于 HTTP 协议的,因此需要使用 Servlet 容器(如 Tomcat)来运行该示例。
阅读全文