我正在尝试开始使用 MINA,并且所有示例似乎都将数据写入会话,而不是使用可以一遍又一遍地写入相同类型数据的方法。
我正在尝试使用org.apache.mina.filter.codec.demux.MessageEncoder
/ MessageDecoder
to encode
/decode
消息,这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行它。
假设我有一个ProtocolCodecFactory
(which extends DemuxingProtocolCodecFactory
) 有一个LoginRequestEncoder
(which implements MessageEncoder<LoginRequest>
,并通过工厂的addMessageEncoder
方法添加)。这是否意味着我不应该直接session.write()
使用用户名/密码数据调用,而是应该做这样的事情?
LoginRequest request = new LoginRequest(username, password);
new ProtocolCodecFactory()
.getEncoder(session)
.encode(session, request, someProtocolEncoderOutput);
我不会撒谎...... MINA 似乎应该简化网络过程,我相信当我掌握它时它会,但我现在完全糊涂了。