fix: Fix SseLineSubscriber lacking request. (#507)

Signed-off-by: He-Pin <hepin1989@gmail.com>
This commit is contained in:
He-Pin(kerr) 2025-08-25 21:46:17 +08:00 • committed by GitHub
commit 94c03505c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -141,7 +141,6 @@ class ResponseSubscribers {
@Override
protected void hookOnNext(String line) {
if (line.isEmpty()) {
// Empty line means end of event
if (this.eventBuilder.length() > 0) {
@ -158,23 +157,27 @@ class ResponseSubscribers {
if (matcher.find()) {
this.eventBuilder.append(matcher.group(1).trim()).append("\n");
}
upstream().request(1);
}
else if (line.startsWith("id:")) {
var matcher = EVENT_ID_PATTERN.matcher(line);
if (matcher.find()) {
this.currentEventId.set(matcher.group(1).trim());
}
upstream().request(1);
}
else if (line.startsWith("event:")) {
var matcher = EVENT_TYPE_PATTERN.matcher(line);
if (matcher.find()) {
this.currentEventType.set(matcher.group(1).trim());
}
upstream().request(1);
}
else if (line.startsWith(":")) {
// Ignore comment lines starting with ":"
// This is a no-op, just to skip comments
logger.debug("Ignoring comment line: {}", line);
upstream().request(1);
}
else {
// If the response is not successful, emit an error