首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mina 2.0.13 + websocket + buffer.capacity

mina 2.0.13 + websocket + buffer.capacity
EN

Stack Overflow用户
提问于 2016-04-01 14:16:46
回答 2查看 152关注 0票数 0

背景:我正在通过mina web套接字(https://issues.apache.org/jira/browse/DIRMINA-907)发送数据,它已经修补了buf问题。

我过去常常通过web套接字发送大约50个字节的json消息。有时,它会达到70个字节...

问题是:最初,IOBuffer.capacity()是2048 --> 2048 --> 1024 --> 1024 - -> 1024 -> 512 -> 512 -> 256 -> 256 -> 128 -> 128 -> 64 -> 64 -> 64 -> 64

如果json消息变为70字节。它将在messageReceived中分成两个消息(IoSession会话、对象消息)。有没有什么办法可以解决这个问题。

我可以存储不完整的消息,但它会引发另一个问题,例如2条json消息或1条有效的json消息和1条无效的json消息。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2016-04-03 08:42:10

我假设您正在对MINA使用TCP。当通过TCP发送大消息时,它会被分成较小的块,以适合较小的数据包。TCP确保数据包数据在到达其目的地时以正确的顺序到达。

发生的情况是,您的JSON消息在通过网络发送时被分割。即使它按顺序到达目的地,您也需要将这两个块放在一起。

MINA用户指南有一个很好的例子来说明如何做到这一点,它应该会对你有所帮助。你可以在here上找到它

票数 0
EN

Stack Overflow用户

发布于 2016-04-05 10:31:58

最后,我通过添加

acceptor.getSessionConfig().setMinReadBufferSize(2048);

写进我的代码。

设置最小读缓冲区,防止消息被分成两部分。我知道这不是一个完美的解决方案。但我的消息不会超过2K。

jython234建议的解决方案不适合我的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36349308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档