1

我正在尝试开始使用 MINA,并且所有示例似乎都将数据写入会话,而不是使用可以一遍又一遍地写入相同类型数据的方法。

我正在尝试使用org.apache.mina.filter.codec.demux.MessageEncoder/ MessageDecoderto 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 似乎应该简化网络过程,我相信当我掌握它时它会,但我现在完全糊涂了。

4

1 回答 1

2

事实证明,您可以通过IoSession.write()简单地发送请求。这是一个基于我原来的问题的简单示例:

LoginRequest request = new LoginRequest(username, password);
session.write(request);
于 2010-01-25T00:20:12.453 回答