У меня есть эластичный клиент на основе UptimeClient из документов Netty (https://netty.io/4.1/xref/io/netty/example/uptime/UptimeClient.html + https://netty.io/4.1/xref/io/netty/example/uptime/UptimeClientHandler.html), который иногда переподключается из-за того, что IdleStateHandler думает, что пора. Все это хорошо, я хочу этого функциональность, но что, если я захочу записать на канал, как только происходит это повторное соединение? Будучи асинхронным, он просто провалится и потерпит неудачу.
Существует ли идиоматический способ Netty связать будущее записи после завершения возможного продолжающегося повторного соединения?
Это мой метод записи (на Kotlin):
fun write(message: String) {
channelFuture?.channel()?.writeAndFlush(message)?.addListener { future ->
if (future.isSuccess) {
log.info("Wrote '$message' successfully")
} else {
log.error("Failed to write '$message'")
}
}
}