在MinaMessageHandler里面的messageReceived函数public void messageReceived(IoSession session, Object message)
throws Exception {
System.out.println("messageReceived: " + message);
// 这样写时客户端能接到消息
session.write(message);
// 这样写时客户央不能接到消息
session.write("message received");
}发现这样的问题是出现在使用了自定义的MyTextLineCodecFactory
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MyTextLineCodecFactory()));
如果使用系统的TextLineCodecFactory,则不会出现这样的问题
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new TextLineCodecFactory()));
有没有人知道是为什么?
在使用自定义的MyTextLineCodecFactory时,IoSession的messageReceived函数中,消息无法正确地从服务器回传到客户端。当切换为系统提供的TextLineCodecFactory时,问题消失。问题可能与自定义编码解码器的实现有关,特别是在处理消息回写的环节。
3548

被折叠的 条评论
为什么被折叠?



