我想使用Netty实现服务器/客户端应用程序。例如,假设它需要上传和下载文件,并在上传新文件时接收通知。问题是客户端即使在下载(或上载)文件时也必须接收通知。我可以看到几个选项:
仅通过TCP发送包含URL的小消息到文件,通过HTTP下载和上传。
通过TCP打开多个并行连接,一个用于小消息,一个用于大消息(或每个大消息一个)。
编写一个分块处理程序,它自动将消息拆分为64Kb(例如)下的块,并允许来自不同消息的块交错。从文档来看,似乎ChunkedWriteHandler
不执行此操作。
我在选项3中喜欢的是客户端只需要进行一次身份验证,一个连接断开的可能性不会被维护,等等。但这是否合理?如果是的话,这样的解决方案是否已经存在?
答案 0 :(得分:1)
Chunks只是http消息,尝试使用一个套接字客户端,缓冲区然后在一个连接中通过chunk将文件写入netty chunk,然后使用netty http chunk aggregator handler解码块。客户端实现非常简单。大多数服务器端实现都可以在org.jboss.netty.example.http.upload下找到。
答案 1 :(得分:0)
如果您同时控制客户端和服务器,请使用websockets。您可以自由地发明自己的文件传输协议,包括通知和诸如此类的东西。 Kermit去websocket; - )