问题标签 [netty]

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 投票
2 回答
721 浏览

java - Netty deployment with just JRE

I'm interested in using Netty for network communication between a client on one computer and a server on another. The Netty documentation says that the JDK is required to run Netty. However, I'm developing an app that will run on a variety of customer computers, most of which will just have the JRE, not the JDK. I suspect that what the Netty documentation really means is that the JDK (1.5 or 1.6 I think) is required to DEVELOP netty based applications, the deployed application can be run on computers with just the JRE. Is this the case? Can someone experienced with Netty confirm this?

Unfortunately Netty has no easy place to ask this question. the forum just redirects to some user group list that provides some hellish infinite loop of mailing list registration and password requests.

This should be an easy question to answer for anyone who has experience deploing netty based applications on customer computers.

0 投票
1 回答
1837 浏览

eclipse - Eclipse 看不到来自插件依赖项的类

我想在 Eclipse RCP 应用程序中使用 Netty。下载最新的 jar后,我已将其添加到插件的依赖项中,但它提供的包在编辑器中没有解析。它在包资源管理器的“插件依赖项”下可见,所有其他依赖项(工作正常)也是如此。我怎样才能解决这个问题?

0 投票
1 回答
75 浏览

java - 在套接字协议的现有事件集之上定义新事件的设计查询

我使用 JBoss Netty 编写了一个 java 服务器和客户端程序。为了向远程客户端发送一些数据并从它们接收数据,我为每个事件定义了事件和处理程序。在网络上,每个事件只是一个字节(操作码)标头,后跟消息字节。最初我只支持 TCP 并在我的程序中定义了 LOG_IN、LOG_OUT、DATA_IN、DATA_OUT 等事件。例如

然后我决定也支持 UDP 并最终生成了 LOGIN_UDP、LOGIN_TCP、DATA_OUT_TCP 或 DATA_OUT_UDP 等事件,以便根据生成的事件,正确的事件处理程序将获取事件并将其写入适当的套接字和远程端口。

正如您所看到的,我面临的第一个问题是在添加 UDP 时定义的事件和事件处理程序的数量几乎翻了一番。有没有更好的方法来处理这种情况?

我面临的第二个(次要)问题是,当您从服务器写入客户端时,像 DATA_OUT 这样的事件是有意义的,但是当在客户端接收相同的事件时,“DATA_OUT”没有这种意义,因为它实际上是传入数据为客户。目前,我有一个解码器,可以将 DATA_OUT 转换为 DATA_IN。这是最好的方法吗?

0 投票
1 回答
2598 浏览

netty - JBoss Netty 框架 HTTP 网站

大家好,我正在尝试使用框架 JBoss Netty 创建自己的网站,服务器启动正常。但是如何将我的网站加载到服务器?例如我已经准备好 index.html,我必须做什么才能在服务器上看到这个页面?

0 投票
1 回答
1676 浏览

android - Netty 在 android-x86 上抛出 java.nio.channels.ClosedSelectorException

我正在尝试使用android-x86而不是标准的 android-emulator,因为它非常快。通过带有图像 android-x86-2.2-generic.iso 的 virtualbox 启动它。

我的项目使用 netty,然后我尝试创建连接,但出现以下错误:

06-22 13:15:10.600:WARN/lientSocketPipelineSink(2411):选择器循环中出现意外异常。06-22 13:15:10.600: WARN/lientSocketPipelineSink(2411): java.nio.channels.ClosedSelectorException 06-22 13:15:10.600: WARN/lientSocketPipelineSink(2411): at org.apache.harmony.nio.internal。 SelectorImpl.closeCheck(SelectorImpl.java:204) 06-22 13:15:10.600: WARN/lientSocketPipelineSink(2411): at org.apache.harmony.nio.internal.SelectorImpl.selectInternal(SelectorImpl.java:236) 06-22 13:15:10.600: WARN/lientSocketPipelineSink(2411): 在 org.apache.harmony.nio.internal.SelectorImpl.select(SelectorImpl.java:224) 06-22 13:15:10.600: WARN/lientSocketPipelineSink(2411):在 org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:239) 06-22 13:15:10.600:

0 投票
1 回答
3308 浏览

ip - JBoss Netty 获取用户 IP(Http 请求)

我需要为对我们的 JBoss Netty 服务器的每个请求记录用户 ip ady's。我想:

是正确的答案,但这总是返回 127.0.0.1 并且我需要实际的客户端 IP。来自 Rails,我检查了他们如何从文档中找到 ip:

确定原始 IP 地址。REMOTE_ADDR 是标准的,但如果用户在代理后面会失败。HTTP_CLIENT_IP 和/或 HTTP_X_FORWARDED_FOR 由代理设置,因此如果 REMOTE_ADDR 是代理,请检查这些。HTTP_X_FORWARDED_FOR 在多个链式代理的情况下可能是一个逗号分隔的列表;最后一个不受信任的地址是原始 IP。

那么我应该检查 Netty 中的所有标题还是有更简单的方法?

0 投票
1 回答
5210 浏览

java - 使用 Netty 在 Java 中实现 Finagle thrift 客户端服务器

刚刚浏览了 Finagle 主页“http://twitter.github.com/finagle/”。它说我们可以使用 Finagale 用 thrift 编写 netty 的 java 实现。我尝试搜索相同的示例,但找不到。所有示例都在 scala 中。有人可以为我提供其 Java 实现的指针吗?

谢谢

0 投票
1 回答
1850 浏览

java - DelimiterBasedFrameDecoder,它是如何工作的?

我假设我是netty的新手;我正在尝试为外部服务器创建客户端,该服务器输出以 0x0d 终止的消息,因此我决定使用 DelimiterBasedFrameDecoder 来处理这些消息。

这只是对处理程序的测试:

我从中看到的错误是它没有像我在构造函数中指定的那样去除分隔符;在 byte[] 数据的末尾,我总是有 0x0d;因此,就像测试一样,我更改了构造函数中的分隔符,在其上放置了一个测试值,例如 0x55

它的工作方式相同,与以前没有区别。我认为我以错误的方式使用它,或者我以错误的方式读取数据。使用这个类的正确方法是什么?

需要明确的是,在这个处理程序的真实代码中,我从读取的数据创建一个对象,并从 decode() 方法返回这个对象,然后我有另一个处理程序扩展 SimpleChannelHandler 来获取这个对象(它类似于示例在用户指南中)。

谢谢你的帮助再见

0 投票
1 回答
360 浏览

java - Netty 的 WriteCompletionEvent 是否保证另一方已收到我的数据或仅保证我已将数据发送到网络?

Netty 的 WriteCompletionEvent 是否保证 TCP 推送确认 [PSH, ACK] 或只是推送已发送数据包的 [PSH]?

0 投票
1 回答
2661 浏览

java - 使用 Netty 在 Java 中发送连续数据的最佳方式

我打算用Netty来设计一个TCP Server。当客户端连接时,我必须立即开始连续向客户端发送 XML 数据……数小时/数天。就这么简单。

所以,我重写了“channelConnected”方法并从该方法发送数据,对吧?......那太好了。

我将使用以下 ChannelFactory

NioServerSocketChannelFactory文件说

工作线程以非阻塞模式对一个或多个 Channel 执行非阻塞读写。

好的。

根据有效的 Java 第 51 条:不要依赖线程调度程序,我希望工作线程执行“工作单元”,然后完成/返回。

所以在我的情况下,虽然我必须连续发送数据,但我想发送一些块(比如说 1 MB)然后完成(工作单元完成),以便工作线程可以返回。然后我会再发送 1 MB。

下面的例子来自 Netty HERE的官方指南。
我想问题是,在这种情况下,如果我必须无条件地继续向客户发送时间,我将如何做,将每次发送视为一个工作单元。

一种方法是只放置一个while循环并执行Thread.Sleep。还有什么办法吗?