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

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

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

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

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

#1楼 票数:1 已采纳

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

#2楼 票数:0

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

  ask by Alexey Romanov translate from so

未解决问题?本站智能推荐:

1回复

为什么netty无法连续发送消息?

我编写了一个服务器,以在连接后向所有客户端发送大量消息。 发送数千条消息后,该通道不再发送消息。 通过调试,我发现调用了AbstractNioByteChannel.incompleteWrite,并且当网络出现拥塞时,会将selectionKey添加到SelectionKey.OP_
1回复

使用netty发送多个RTSP消息

我想创建一个RTSP客户端,以发送一些RTSP消息。 我使用netty编写此代码,但是我的代码只能发送一条消息。 如何发送其他消息? 我的客户代码如下: 此代码只能发送第一条消息。 服务器未收到第二个数据。 如何发送其他消息?
1回复

Netty:发送消息时出现问题

所以我最近在netty(5.0.0.Alpha2)上工作了一些,我非常喜欢! 但是很遗憾,我无法发送/接收消息。 奇怪的是,连接和断开的工作就像一种魅力。 服务器接收到客户端已连接/断开连接并且通道已添加/删除的消息。 只是消息无法正常工作。 我确实尝试了许多其他方式(例如,没有编
1回复

仅在使用Netty响应之前,如何发送消息?

我必须向服务器发送命令。 服务器答复“确定”时,如果可以的话,我可以发送下一条命令。 如果服务器回复错误,则必须打印该错误并稍后重试,或者根据命令停止。 如果服务器未回复,则必须在几秒钟后再次发送命令。 例如像AT命令。 我知道ChannelInbound
2回复

netty 4如何从服务器发送消息

如何从服务器本身发送消息,而不是从MessageHandlers发送消息? 我知道InetSocketAddress,我从MessageHandler存储它,但我看不到任何直接使用套接字的方法。 例如: 我该如何添加方法呢
2回复

如何让我的 bytebuf 发送我的整个消息 Netty

我大家。 我问你是因为我在Netty的解码器中的ByteBuf有问题。 我想解码由服务器到达的我的消息,但 ByteBuf 不能像我那样工作。 问题是 ByteBuf 没有获取消息的所有字节。 我解释一下,我有一条长度为 1221 字节的消息(这是一个示例),但缓冲区大小仅为 64 字节。
1回复

Netty-发送失败:UnsupportedOperationException:不支持的消息类型

我正在使用Netty 4.1.9编写服务器-客户端应用程序。 最近,我成功使用ByteBuf进行了通信。 然后尝试使用String并再次成功。 但是,在最后一步中,我想发送自定义对象,这是我的问题: 一些代码部分 服务器: ServerHandler:
1回复

Netty-Java中同时发送消息的最佳方法

我有150个线程。 每个线程都有Netty Client ,并且已连接到服务器。 我应该使用150个以上的线程发送吗? 我应该使用75个线程发送吗? 我应该不使用线程发送吗? 我的本地测试没有意义。 (我不能操作超过50个服务器) 请帮我。