Package io.github.easy4j.opencode.api
Class OpenCodeSseClient
java.lang.Object
io.github.easy4j.opencode.api.OpenCodeSseClient
- All Implemented Interfaces:
AutoCloseable
OpenCode Server SSE 客户端,负责事件订阅、过滤、取消和资源回收。
- Since:
- 1.0.0
- Author:
- Loong Wan
-
Constructor Summary
ConstructorsConstructorDescription使用 SDK 自建 OkHttpClient 创建 SSE 客户端。OpenCodeSseClient(OpenCodeHttpClientConfig config, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient) 使用共享 ObjectMapper 和 OkHttpClient 创建 SSE 客户端。 -
Method Summary
Modifier and TypeMethodDescriptionint返回当前活动订阅数量。voidclose()取消全部订阅并释放 SSE 客户端自有资源。subscribeEvents(Consumer<SseEvent> consumer) 订阅全局事件流。subscribeEvents(Consumer<SseEvent> consumer, OpenCodeRequestContext context) 使用请求上下文订阅全局事件流。创建带有界队列的全局事件订阅。subscribeEventTypes(Set<String> types, Consumer<SseEvent> consumer) 订阅指定类型集合中的事件。subscribeEventTypes(Set<String> types, Consumer<SseEvent> consumer, OpenCodeRequestContext context) 使用请求上下文订阅指定类型集合中的事件。subscribeSessionEvents(String sessionId, EventHandler handler) 使用类型化处理器订阅指定 session 的事件。subscribeSessionEvents(String sessionId, EventHandler handler, OpenCodeRequestContext context) 使用请求上下文和类型化处理器订阅指定 session 的事件。subscribeSessionEvents(String sessionId, Consumer<SseEvent> consumer) 订阅指定 session 的事件。subscribeSessionEvents(String sessionId, Consumer<SseEvent> consumer, OpenCodeRequestContext context) 使用请求上下文订阅指定 session 的事件。
-
Constructor Details
-
OpenCodeSseClient
使用 SDK 自建 OkHttpClient 创建 SSE 客户端。- Parameters:
config- 客户端配置;不得为null
-
OpenCodeSseClient
public OpenCodeSseClient(OpenCodeHttpClientConfig config, com.fasterxml.jackson.databind.ObjectMapper objectMapper, okhttp3.OkHttpClient httpClient) 使用共享 ObjectMapper 和 OkHttpClient 创建 SSE 客户端。- Parameters:
config- 客户端配置;不得为nullobjectMapper- JSON 映射器;为null时使用 SDK 默认配置httpClient- 可复用的 OkHttp 客户端;为null时由 SDK 创建
-
-
Method Details
-
subscribeEvents
订阅全局事件流。- Parameters:
consumer- 事件或文本增量消费者;不得为null- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeEvents
使用请求上下文订阅全局事件流。- Parameters:
consumer- 事件或文本增量消费者;不得为nullcontext- 请求上下文;为null时不附加目录头- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeEventsQueue
创建带有界队列的全局事件订阅。- Parameters:
context- 请求上下文;为null时不附加目录头- Returns:
- 包含有界事件队列和取消句柄的订阅对象
-
subscribeSessionEvents
订阅指定 session 的事件。- Parameters:
sessionId- OpenCode 会话 ID;不得为空consumer- 事件或文本增量消费者;不得为null- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeSessionEvents
public SseSubscription subscribeSessionEvents(String sessionId, Consumer<SseEvent> consumer, OpenCodeRequestContext context) 使用请求上下文订阅指定 session 的事件。- Parameters:
sessionId- OpenCode 会话 ID;不得为空consumer- 事件或文本增量消费者;不得为nullcontext- 请求上下文;为null时不附加目录头- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeSessionEvents
使用类型化处理器订阅指定 session 的事件。- Parameters:
sessionId- OpenCode 会话 ID;不得为空handler- 类型化事件处理器;不得为null- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeSessionEvents
public SseSubscription subscribeSessionEvents(String sessionId, EventHandler handler, OpenCodeRequestContext context) 使用请求上下文和类型化处理器订阅指定 session 的事件。- Parameters:
sessionId- OpenCode 会话 ID;不得为空handler- 类型化事件处理器;不得为nullcontext- 请求上下文;为null时不附加目录头- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeEventTypes
订阅指定类型集合中的事件。- Parameters:
types- 允许通过的事件类型集合;为空时不过滤consumer- 事件或文本增量消费者;不得为null- Returns:
- 用于取消连接并释放资源的订阅句柄
-
subscribeEventTypes
public SseSubscription subscribeEventTypes(Set<String> types, Consumer<SseEvent> consumer, OpenCodeRequestContext context) 使用请求上下文订阅指定类型集合中的事件。- Parameters:
types- 允许通过的事件类型集合;为空时不过滤consumer- 事件或文本增量消费者;不得为nullcontext- 请求上下文;为null时不附加目录头- Returns:
- 用于取消连接并释放资源的订阅句柄
-
activeSubscriptionCount
public int activeSubscriptionCount()返回当前活动订阅数量。- Returns:
- 按接口语义计算的数量或状态数值
-
close
public void close()取消全部订阅并释放 SSE 客户端自有资源。- Specified by:
closein interfaceAutoCloseable
-