Java 如何通过MINA正确发送数据?
我试图从MINA开始,所有示例似乎都将数据写入会话,而不是使用可以反复写入相同类型数据的方法 我试图利用Java 如何通过MINA正确发送数据?,java,sockets,nio,apache-mina,Java,Sockets,Nio,Apache Mina,我试图从MINA开始,所有示例似乎都将数据写入会话,而不是使用可以反复写入相同类型数据的方法 我试图利用org.apache.mina.filter.codec.demux.MessageEncoder/MessageDecoder对消息进行编码/解码这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行任务 假设我有一个ProtocolCodecFactory(它扩展了DemuxingProtocolCodecFactory),它有一个loginRequestCoder(它实现了M
org.apache.mina.filter.codec.demux.MessageEncoder
/MessageDecoder
对消息进行编码
/解码
这将允许我始终在中心位置执行任务,而不是像示例那样在代码中内联执行任务
假设我有一个ProtocolCodecFactory
(它扩展了DemuxingProtocolCodecFactory
),它有一个loginRequestCoder
(它实现了MessageEncoder
,并通过工厂的addMessageEncoder
方法添加)。这是否意味着我不应该直接调用带有用户名/密码数据的session.write()
,而应该这样做
LoginRequest request = new LoginRequest(username, password);
new ProtocolCodecFactory()
.getEncoder(session)
.encode(session, request, someProtocolEncoderOutput);
我不想撒谎……MINA似乎应该简化联网过程,我相信当我处理好它时,它会简化,但我现在完全搞不清楚。事实证明,你可以简单地通过发送请求。以下是一个基于我最初问题的简单示例:
LoginRequest request = new LoginRequest(username, password);
session.write(request);