Только начал играть с netty в реализации моего собственного сервера. Мне потребовалось некоторое время, чтобы освоить его, но теперь я смог принимать клиентов, написав свой собственный MessageHandler, и внутри messageReceived я смог прочитать из буфера и выполнил некоторую бизнес-логику, связанную с полученными данными.
Однако теперь возникает вопрос: как записать данные в подключенные клиенты? Я видел пример кода, где вы можете написать на канал в случае появления нового сообщения, такого как:
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
Channel ch = e.getChannel();
ch.write(e.getMessage());
}
но что, если вы не хотите записывать данные обратно в этот момент? Что если клиент остается подключенным к сокету и ожидает, пока на сервере не произойдет какое-либо событие? В таком случае, как мой сервер найдет правильный сокет для записи? Предполагается ли сохранить ссылку на объект канала? Это соглашение?
Я заглянул в код и увидел метод writeRequested. Это связано? Кто это называет? И нужно ли это?