Я пытаюсь начать работу с MINA, и все примеры, похоже, содержат данные, записанные в сеанс, вместо того, чтобы использовать метод, который может записывать один и тот же тип данных снова и снова.
Я пытаюсь использовать сообщения от org.apache.mina.filter.codec.demux.MessageEncoder
/ MessageDecoder
до encode
/ decode
, которые позволят мне всегда выполнять задачу в центральном месте, вместо того, чтобы делать это встроенным в коде, как в примерах.
Допустим, у меня есть ProtocolCodecFactory
(который расширяет DemuxingProtocolCodecFactory
), который имеет LoginRequestEncoder
(который реализует MessageEncoder<LoginRequest>
, и был добавлен с помощью фабричного addMessageEncoder
метода). Означает ли это, что вместо прямого вызова session.write()
с данными имени пользователя / пароля я должен вместо этого сделать что-то подобное?
LoginRequest request = new LoginRequest(username, password);
new ProtocolCodecFactory()
.getEncoder(session)
.encode(session, request, someProtocolEncoderOutput);
Я не собираюсь лгать ... Кажется, MINA должна упростить сетевой процесс, и я уверен, что это произойдет, когда я справлюсь с этим, но сейчас я полностью сбит с толку.