Module bus.http

Class Stomp

java.lang.Object
org.miaixz.bus.http.Stomp

public class Stomp extends Object
WebSocket 的 STOMP 协议客户端

提供与 STOMP 服务器的连接、消息发送、订阅和消息确认功能。 支持主题(topic)和队列(queue)订阅,自动或手动消息确认。

Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Method Details

    • over

      public static Stomp over(CoverCall.Client task)
      构建 STOMP 客户端(默认自动确认消息)
      Parameters:
      task - 底层 WebSocket 客户端
      Returns:
      STOMP 客户端实例
    • over

      public static Stomp over(CoverCall.Client task, boolean autoAck)
      构建 STOMP 客户端
      Parameters:
      task - 底层 WebSocket 客户端
      autoAck - 是否自动确认消息
      Returns:
      STOMP 客户端实例
    • connect

      public Stomp connect()
      连接到 STOMP 服务器
      Returns:
      当前 STOMP 客户端实例
    • connect

      public Stomp connect(List<Stomp.Header> headers)
      使用指定头部连接到 STOMP 服务器
      Parameters:
      headers - STOMP 头部信息
      Returns:
      当前 STOMP 客户端实例
    • disconnect

      public void disconnect()
      断开与 STOMP 服务器的连接
    • setOnConnected

      public Stomp setOnConnected(Callback<Stomp> onConnected)
      设置连接成功回调
      Parameters:
      onConnected - 连接成功回调
      Returns:
      当前 STOMP 客户端实例
    • setOnDisconnected

      public Stomp setOnDisconnected(Callback<CoverCall.Close> onDisconnected)
      设置连接断开回调
      Parameters:
      onDisconnected - 连接断开回调
      Returns:
      当前 STOMP 客户端实例
    • setOnError

      public Stomp setOnError(Callback<Stomp.Message> onError)
      设置错误消息回调
      Parameters:
      onError - 错误消息回调
      Returns:
      当前 STOMP 客户端实例
    • sendTo

      public void sendTo(String destination, String data)
      发送消息到指定目标地址
      Parameters:
      destination - 目标地址
      data - 消息内容
    • send

      public void send(Stomp.Message message)
      发送 STOMP 消息到服务器
      Parameters:
      message - STOMP 消息
      Throws:
      IllegalArgumentException - 如果未调用 connect 方法
    • topic

      public Stomp topic(String destination, Callback<Stomp.Message> callback)
      订阅主题消息
      Parameters:
      destination - 主题地址
      callback - 消息回调
      Returns:
      当前 STOMP 客户端实例
    • topic

      public Stomp topic(String destination, List<Stomp.Header> headers, Callback<Stomp.Message> callback)
      订阅主题消息(带附加头部)
      Parameters:
      destination - 主题地址
      headers - 附加头部信息
      callback - 消息回调
      Returns:
      当前 STOMP 客户端实例
    • queue

      public Stomp queue(String destination, Callback<Stomp.Message> callback)
      订阅队列消息
      Parameters:
      destination - 队列地址
      callback - 消息回调
      Returns:
      当前 STOMP 客户端实例
    • queue

      public Stomp queue(String destination, List<Stomp.Header> headers, Callback<Stomp.Message> callback)
      订阅队列消息(带附加头部)
      Parameters:
      destination - 队列地址
      headers - 附加头部信息
      callback - 消息回调
      Returns:
      当前 STOMP 客户端实例
    • subscribe

      public Stomp subscribe(String destination, List<Stomp.Header> headers, Callback<Stomp.Message> callback)
      订阅指定地址的消息
      Parameters:
      destination - 订阅地址
      headers - 附加头部信息
      callback - 消息回调
      Returns:
      当前 STOMP 客户端实例
    • ack

      public void ack(Stomp.Message message)
      确认收到消息
      Parameters:
      message - 服务器发送的消息
    • untopic

      public void untopic(String destination)
      取消主题订阅
      Parameters:
      destination - 主题地址
    • unqueue

      public void unqueue(String destination)
      取消队列订阅
      Parameters:
      destination - 队列地址
    • unsubscribe

      public void unsubscribe(String destination)
      取消指定地址的订阅
      Parameters:
      destination - 订阅地址
    • setLegacyWhitespace

      public void setLegacyWhitespace(boolean legacyWhitespace)
      设置是否使用传统空白字符格式
      Parameters:
      legacyWhitespace - 是否启用传统格式