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

java sse

作者:狂神战天   发布日期:2025-03-25   浏览:40

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

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 {
    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 设置响应内容类型和字符编码
        response.setContentType("text/event-stream");
        response.setCharacterEncoding("UTF-8");

        // 获取 PrintWriter 对象,用于向客户端发送数据
        PrintWriter writer = response.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. 响应类型response.setContentType("text/event-stream"); 设置响应的内容类型为 text/event-stream,这是 SSE 协议要求的 MIME 类型。
  3. 字符编码response.setCharacterEncoding("UTF-8"); 设置字符编码为 UTF-8,确保消息可以正确显示。
  4. PrintWriter:通过 response.getWriter() 获取一个 PrintWriter 对象,用于向客户端发送消息。
  5. 消息格式:SSE 消息以 data: 开头,每条消息以两个换行符 \n\n 结束。
  6. 循环发送消息:使用 for 循环模拟每隔一秒发送一条消息,总共发送 10 条消息。
  7. 异常处理:捕获可能的 InterruptedException 并打印堆栈跟踪信息。
  8. 资源释放:在 finally 块中关闭 PrintWriter,确保资源被正确释放。

上一篇:java string[]

下一篇:java.net.sockettimeoutexception

大家都在看

java连接数据库的代码

ubuntu 卸载java

java sort用法

java collections.sort

java file类的方法

java 判断

java时间数据类型

java 时间加一天

java demo

java 截取

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

Laravel 中文站