All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.kongweiguang.ok.sse.SseEvent Maven / Gradle / Ivy

The newest version!
package io.github.kongweiguang.ok.sse;

/**
 * Sse 事件
 *
 * @author kongweiguang
 * @since 0.1
 */
public final class SseEvent {

  private final StringBuilder sb = new StringBuilder();

  private String id;
  private String type;
  private String retry;

  private String data;

  public static SseEvent of() {
    return new SseEvent();
  }

  /**
   * 添加 SSE "id" 行.
   */
  public SseEvent id(final String id) {
    this.id = id;
    append("id:").append(this.id).append("\n");
    return this;
  }

  /**
   * 添加 SSE "event" 行.
   */
  public SseEvent type(final String type) {
    this.type = type;
    append("event:").append(this.type).append("\n");
    return this;
  }

  /**
   * 添加 SSE "retry" 行.
   */
  public SseEvent reconnectTime(final long reconnectTimeMillis) {
    this.retry = String.valueOf(reconnectTimeMillis);
    append("retry:").append(this.retry).append("\n");
    return this;
  }

  /**
   * 添加 SSE "data" 行.
   */
  public SseEvent data(final String data) {
    this.data = data;
    append("data:").append(this.data).append("\n");
    return this;
  }

  private SseEvent append(final String text) {
    this.sb.append(text);
    return this;
  }


  public String id() {
    return id;
  }

  public String type() {
    return type;
  }

  public String retry() {
    return retry;
  }

  public String data() {
    return data;
  }

  @Override
  public String toString() {
    return sb.toString();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy