我需要为现有协议创建客户端。我相信Netty可以做到相对简单,但可以通过一些入门帮助。
该协议使用基于连接的方法,但在UDP之上分层,实际消息在传输信封内,包含无序/慢速/丢失数据包,会话编号等所有工作。客户。
创建管道的最佳方法是什么? netty中的帧解码器等实现了这一点。我之前只以非常基本的方式使用过netty - 所以任何建议都会非常受欢迎。
谢谢!
詹姆斯
答案 0 :(得分:2)
听起来很痛苦。我是一个常规的netty用户,但我不会在Netty中实现这样的协议(不是针对netty,而是在其他地方实现),至少,就像你描述的那样。在你走这条路之前,我先看看JGroups,它实现了一个“可靠的UDP”堆栈,它具有你概述的所有传输功能。
我对此的第一次尝试(如果我在荒岛上)会是这样的:
<强>下游强>
sendMessage
--> MessageSplitHandler
--> MessageFragmentBufferHandler
RetransmitRequester -->
其中:
<强>上游强>
这或多或少与下游相反。
MessageFragmentDecoder <--
MessageFragmentBuffer <--
MessageReAssember <--
onMessage
我认为这是一般性的想法,但那里可能有200-300个角落......