问题标签 [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.
java - 消息延迟几秒,我用writeandflush写
当客户端向我发送一些消息时,我处理消息并使用 writeAndFlush 回复客户端,有时会延迟几秒钟。怎么了?被封锁了吗?
netty - Netty 4 中 ChannelHandlerContext.sendUpstream 的替代品是什么
我正在使用 Netty 3 将应用程序升级到 Netty 4。许多处理程序目前的代码如下所示:
我正在寻找如何将其转换为 Netty 4。我看到它现在ChannelOutboundHandlerAdapter
替换SimpleChannelUpstreamHandler
了,但仍有几个问题:
ChannelStateEvent
在 Netty 4 中不再可用,现在接收通道事件的机制是什么?- 那里在做什么
ctx.sendUpstream(e)
,如何在 Netty 4 中复制?
netty - Netty 4 中 ChannelEvent 和 CustomEvent 的替换
我正在将 Netty3 应用程序升级到 Netty4。该应用程序当前通过扩展ChannelEvent
类来使用自定义事件,我不确定如何将其转换为 Netty 4,因为ChannelEvent
在 Netty4 中似乎已经消失了,并且与 Netty3 不同,在 Netty 4 中,没有接收通道事件的处理程序方法.
Netty 3 中的当前代码如下所示:
定义了一个自定义事件:
在一些处理程序中,有一些使用该事件的代码。例如:
这如何翻译成 Netty 4?不仅是自定义事件部分,还有context.sendDownstream(event)
方法调用,因为这在 Netty 4 中也不再存在。
netty - Channel 上的操作与 ChannelHandlerContext 上的操作有什么区别
我刚开始使用 Netty,我有一个关于Channel
和的问题ChannelHandlerContext
从我目前所读到的内容来看,Channel
可以看作是对底层套接字的抽象IO
,而ChannelHandlerContext
它是一个用于在通道管道内的通道处理程序之间传递信息的对象。
以上准确吗?
因为现在我正在查看一些使用 Netty 和在线示例的代码库,所以我发现似乎在 onChannel
和 on 上都有相同的操作ChannelHandlerContext
。例如:
或者
问题是,为什么这些类似的操作都定义在 Channel and also on
ChannelHandlerContext 上?它们有什么不同吗?在什么条件下应该优先选择一个?
netty - Netty 4 中 DefualtChannelFuture 的替代品是什么
在 Netty 3 中有DefualtChannelFuture类。
它用于创建ChannelFuture
. Netty 4 中的替代品是什么?
netty - 如何在 Netty 4 中修复导致 IllegalArgumentException 的 AttributeKey
我正在将 Netty 3 应用程序移植到 Netty 4。Netty 3 应用程序用于Attachement
将对象附加到上下文。
在 4.0 中阅读新的和值得注意的我看到附件已被删除并替换为 AttributeKey/AttributeMap。
问题是这在我运行应用程序时有效,但在集成测试中,我收到错误:
在attr_key
可共享处理程序中定义的位置如下:
然后在同一个处理程序类的其他地方使用如下:
关于使用 AttributeKey/AttributeMap 以防止此错误的推荐方法的任何想法或想法?谢谢!
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?
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?
netty - 如何在 Netty 4 中通道关闭之前在 ReadTimeoutHandler 上写入通道
与 Netty 3 相比,Netty 4 中的行为ReadTimeoutHandler
似乎发生了变化。在 Netty 4 中,当超时触发时,Netty 不仅会引发 aReadTimeoutException
还会关闭通道。这不是以前的情况。在 Netty 3 中,行为是只提高ReadTimeoutException
,通道没有关闭。
我有一个用例,我需要在超时时向通道写入消息。这不能再做了,因为到了处理抛出的代码的时候,ReadTimeoutException
通道已经关闭了。
关于如何在 Netty 4 中处理这个用例的任何提示/想法?ReadTimeoutException
基本上在 Netty 关闭频道之前写入频道?
netty - 写一个 ByteBuf 和一个普通的 Java 对象的区别
ByteBuff
我注意到在使用 Netty 时可以相互写入作为 Java 对象的实例或普通 Java 对象的数据。
在HAProxyClient中可以看到
在那个文件上你有
一个普通的 Java 对象HAProxyMessage
被写入上下文。仍然在同一个文件中,您有:
WhereUnpooled.copiedBuffer
用于创建要写入的数据。此方法返回一个ByteBuf
.
那么问题是:编写(或读取)计划 Java 对象和ByteBuf