Skip to content

Commit 35fffd9

Browse files
jpongekatheris
authored andcommitted
Handle WebSocket end and exceptions
Signed-off-by: Julien Ponge <jponge@redhat.com>
1 parent e268435 commit 35fffd9

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/main/java/kafka/vertx/demo/WebSocketServer.java

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.vertx.core.AbstractVerticle;
1212
import io.vertx.core.Promise;
1313
import io.vertx.core.eventbus.EventBus;
14+
import io.vertx.core.eventbus.MessageConsumer;
1415
import io.vertx.core.http.ServerWebSocket;
1516
import io.vertx.core.json.JsonObject;
1617
import io.vertx.ext.web.Router;
@@ -90,8 +91,17 @@ private void handleProduceSocket(ServerWebSocket webSocket) {
9091
}
9192
});
9293

93-
eventBus.<JsonObject>consumer(Main.PERIODIC_PRODUCER_BROADCAST, message ->
94+
MessageConsumer<JsonObject> consumer = eventBus.<JsonObject>consumer(Main.PERIODIC_PRODUCER_BROADCAST, message ->
9495
eventBus.send(webSocket.textHandlerID(), message.body().encode()));
96+
97+
webSocket.endHandler(ended -> {
98+
logger.info("WebSocket closed from {}", webSocket.remoteAddress().host());
99+
consumer.unregister();
100+
});
101+
webSocket.exceptionHandler(err -> {
102+
logger.error("WebSocket error", err);
103+
consumer.unregister();
104+
});
95105
}
96106

97107
private void handleConsumeSocket(ServerWebSocket webSocket) {
@@ -126,5 +136,18 @@ private void handleConsumeSocket(ServerWebSocket webSocket) {
126136
}
127137
});
128138

139+
webSocket.endHandler(done -> {
140+
logger.info("WebSocket closed from {}", webSocket.remoteAddress().host());
141+
kafkaConsumer.close().onFailure(err -> {
142+
logger.error("Closing Kafka consumer failed", err);
143+
});
144+
});
145+
146+
webSocket.exceptionHandler(err -> {
147+
logger.error("WebSocket error", err);
148+
kafkaConsumer.close().onFailure(kerr -> {
149+
logger.error("Closing Kafka consumer failed", kerr);
150+
});
151+
});
129152
}
130153
}

0 commit comments

Comments
 (0)