问题标签 [netty4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
32 浏览

java - 消息延迟几秒,我用writeandflush写

当客户端向我发送一些消息时,我处理消息并使用 writeAndFlush 回复客户端,有时会延迟几秒钟。怎么了?被封锁了吗?

0 投票
1 回答
126 浏览

netty - Netty 4 中 ChannelHandlerContext.sendUpstream 的替代品是什么

我正在使用 Netty 3 将应用程序升级到 Netty 4。许多处理程序目前的代码如下所示:

我正在寻找如何将其转换为 Netty 4。我看到它现在ChannelOutboundHandlerAdapter替换SimpleChannelUpstreamHandler了,但仍有几个问题:

  1. ChannelStateEvent在 Netty 4 中不再可用,现在接收通道事件的机制是什么?
  2. 那里在做什么ctx.sendUpstream(e),如何在 Netty 4 中复制?
0 投票
1 回答
56 浏览

netty - Netty 4 中 ChannelEvent 和 CustomEvent 的替换

我正在将 Netty3 应用程序升级到 Netty4。该应用程序当前通过扩展ChannelEvent类来使用自定义事件,我不确定如何将其转换为 Netty 4,因为ChannelEvent在 Netty4 中似乎已经消失了,并且与 Netty3 不同,在 Netty 4 中,没有接收通道事件的处理程序方法.

Netty 3 中的当前代码如下所示:

定义了一个自定义事件:

在一些处理程序中,有一些使用该事件的代码。例如:

这如何翻译成 Netty 4?不仅是自定义事件部分,还有context.sendDownstream(event)方法调用,因为这在 Netty 4 中也不再存在。

0 投票
1 回答
43 浏览

netty - Channel 上的操作与 ChannelHandlerContext 上的操作有什么区别

我刚开始使用 Netty,我有一个关于Channel和的问题ChannelHandlerContext

从我目前所读到的内容来看,Channel可以看作是对底层套接字的抽象IO,而ChannelHandlerContext它是一个用于在通道管道内的通道处理程序之间传递信息的对象。

以上准确吗?

因为现在我正在查看一些使用 Netty 和在线示例的代码库,所以我发现似乎在 onChannel和 on 上都有相同的操作ChannelHandlerContext。例如:

或者

问题是,为什么这些类似的操作都定义在 Channel and also onChannelHandlerContext 上?它们有什么不同吗?在什么条件下应该优先选择一个?

0 投票
1 回答
16 浏览

netty - Netty 4 中 DefualtChannelFuture 的替代品是什么

在 Netty 3 中有DefualtChannelFuture类。

它用于创建ChannelFuture. Netty 4 中的替代品是什么?

0 投票
1 回答
68 浏览

netty - 如何在 Netty 4 中修复导致 IllegalArgumentException 的 AttributeKey

我正在将 Netty 3 应用程序移植到 Netty 4。Netty 3 应用程序用于Attachement将对象附加到上下文。

在 4.0 中阅读新的和值得注意的我看到附件已被删除并替换为 AttributeKey/AttributeMap。

问题是这在我运行应用程序时有效,但在集成测试中,我收到错误:

attr_key可共享处理程序中定义的位置如下:

然后在同一个处理程序类的其他地方使用如下:

关于使用 AttributeKey/AttributeMap 以防止此错误的推荐方法的任何想法或想法?谢谢!

0 投票
1 回答
165 浏览

netty - 如何在 Netty 4 中配置 EventExecutor,如 Netty 3 中的 ExecutionHandler

Netty 3 使用了ExecutionHandler,它提供了通过传入Executor来配置系统的能力。例如,可以使用OrderedMemoryAwareThreadPoolExecutor,它允许配置诸如corePoolSize,maxChannelMemorySize等之类的东西maxTotalMemorySize

在 Netty 4 中, ExecutionHandler 已被删除,在New 和 4.0 中值得注意的是,它被提及使用DefaultEventExecutor,但据我所知,这与删除的配置灵活性不同ExecutionHandler

问题是如何像 Netty 3 中的 ExecutionHandler 一样在 Netty 4 中配置 EventExecutor?

0 投票
1 回答
56 浏览

netty - How to perform integration testing in Netty 4

In Netty in Action, I read about EmbeddedChannel which can be used for unit testing.

My use case now goes beyond unit testing, and more of integration testing. I want to be able to start the server and then, and within the test, configure/modify the channel handlers.

How is such an integration test setup possible in Netty 4?

0 投票
1 回答
24 浏览

netty - 如何在 Netty 4 中通道关闭之前在 ReadTimeoutHandler 上写入通道

与 Netty 3 相比,Netty 4 中的行为ReadTimeoutHandler似乎发生了变化。在 Netty 4 中,当超时触发时,Netty 不仅会引发 aReadTimeoutException还会关闭通道。这不是以前的情况。在 Netty 3 中,行为是只提高ReadTimeoutException,通道没有关闭。

我有一个用例,我需要在超时时向通道写入消息。这不能再做了,因为到了处理抛出的代码的时候,ReadTimeoutException通道已经关闭了。

关于如何在 Netty 4 中处理这个用例的任何提示/想法?ReadTimeoutException基本上在 Netty 关闭频道之前写入频道?

0 投票
1 回答
110 浏览

netty - 写一个 ByteBuf 和一个普通的 Java 对象的区别

ByteBuff我注意到在使用 Netty 时可以相互写入作为 Java 对象的实例或普通 Java 对象的数据。

在HAProxyClient中可以看到

在那个文件上你有

一个普通的 Java 对象HAProxyMessage被写入上下文。仍然在同一个文件中,您有:

WhereUnpooled.copiedBuffer用于创建要写入的数据。此方法返回一个ByteBuf.

那么问题是:编写(或读取)计划 Java 对象和ByteBuf