在Netty上并行发送潜在的大型消息

时间:2012-09-17 13:10:49

标签: java netty

我想使用Netty实现服务器/客户端应用程序。例如,假设它需要上传和下载文件,并在上传新文件时接收通知。问题是客户端即使在下载(或上载)文件时也必须接收通知。我可以看到几个选项:

  1. 仅通过TCP发送包含URL的小消息到文件,通过HTTP下载和上传。

  2. 通过TCP打开多个并行连接,一个用于小消息,一个用于大消息(或每个大消息一个)。

  3. 编写一个分块处理程序,它自动将消息拆分为64Kb(例如)下的块,并允许来自不同消息的块交错。从文档来看,似乎ChunkedWriteHandler 执行此操作。

  4. 我在选项3中喜欢的是客户端只需要进行一次身份验证,一个连接断开的可能性不会被维护,等等。但这是否合理?如果是的话,这样的解决方案是否已经存在?

2 个答案:

答案 0 :(得分:1)

Chunks只是http消息,尝试使用一个套接字客户端,缓冲区然后在一个连接中通过chunk将文件写入netty chunk,然后使用netty http chunk aggregator handler解码块。客户端实现非常简单。大多数服务器端实现都可以在org.jboss.netty.example.http.upload下找到。

答案 1 :(得分:0)

如果您同时控制客户端和服务器,请使用websockets。您可以自由地发明自己的文件传输协议,包括通知和诸如此类的东西。 Kermit去websocket; - )