1

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

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

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

  3. 编写一个分块处理程序,自动将消息拆分为 64Kb 以下的块(例如),并允许来自不同消息的块交错。从文档来看,似乎ChunkedWriteHandler没有这样做。

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

4

2 回答 2

1

块只不过是 http 消息,尝试使用一个套接字客户端,它缓冲然后在一个连接中将文件逐块写入 netty,然后使用 netty http 块聚合器处理程序来解码块。客户端实现非常简单。大多数服务器端实现都可以在 org.jboss.netty.example.http.upload 下找到。

于 2012-09-18T06:08:05.863 回答
0

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

于 2012-09-19T22:13:45.660 回答