0
@Override
public void messageReceived(NextFilter nextFilter, IoSession session, Object message) throws Exception
{
}
我需要将消息作为字节流读取。但它并不保证收到完整的信息。我需要丢弃包含少于16个字节的消息。当字节的全部长度达到16时,我需要解码并使用它们。在任何情况下,如果它调用17个字节,那么我只需要处理16个字符,并在下一个循环中保留另一个字节。 reset()和mark()帮助我解决这个问题。有什么方法可以让米娜缓冲吗?或者我必须使用我自己的缓冲区?从Mina.MessageReceived()读取字节流
所以对于1)IoBuffer缓冲液=(IoBuffer)消息;如果它小于16,我应该怎么称呼?什么确切的方法。 2)好的。 3.)我怎样才能保存进入会话?你是否建议将一个增长的字节[]附加到ioSession中? ,谢谢你的回复 – dinesh707
1,你可以调用方法buffer.position(buffer.limit()),否则,mina框架会调用messageReceived方法。 –
2,是的,你可以保存一个字节[]中的剩余字节,或者一个新的IoBuffer包含剩余字节或其他结构,只要能保存数据,那么当你的程序接收到下一个数据时,你应该先检查会话 –