Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

sse java

作者:一抹淡影   发布日期:2026-01-19   浏览:93

// Server-Sent Events (SSE) 示例代码

import java.io.IOException;
import java.io.PrintWriter;
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 {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置响应头
        resp.setContentType("text/event-stream");
        resp.setCharacterEncoding("UTF-8");

        PrintWriter writer = resp.getWriter();
        try {
            for (int i = 0; i < 10; i++) {
                // 发送事件数据
                writer.write("data: Message " + i + "\n\n");
                writer.flush();
                Thread.sleep(1000); // 模拟延迟
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        } finally {
            writer.close();
        }
    }
}

解释说明:

  1. Servlet 注解@WebServlet("/sse") 将这个 Servlet 映射到 /sse 路径。
  2. 设置响应头resp.setContentType("text/event-stream"); 设置响应内容类型为 text/event-stream,这是 SSE 所需的 MIME 类型。
  3. 发送事件数据:通过 writer.write("data: Message " + i + "\n\n"); 发送事件数据。每个事件以 data: 开头,并以两个换行符 \n\n 结束。
  4. 模拟延迟Thread.sleep(1000); 用于模拟每秒发送一条消息。
  5. 关闭资源:在 finally 块中确保 PrintWriter 被关闭。

这段代码展示了如何使用 Java 的 Servlet 实现 Server-Sent Events (SSE),使服务器能够向客户端推送实时更新。

上一篇:java中abstract的作用

下一篇:exception in thread main java la

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

java读取excel中的图片

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站