标签: netty

TCP keep-alive确定客户端是否在netty中断开连接

我正在尝试确定客户端是否已从netty关闭套接字连接.有没有办法做到这一点?

tcp netty

12
推荐指数
1
解决办法
1万
查看次数

Netty Channel关闭检测

我正在使用netty和ios构建服务器客户端应用程序,当用户只关闭他/她的ios设备上的WiFi时,我遇到了问题,netty服务器不知道它.服务器需要知道为该用户进行清理并将他/她设置为脱机,但现在当用户再次尝试连接时,服务器只是告诉他他/她已经在线.

timeout protocols ios netty

11
推荐指数
1
解决办法
2万
查看次数

使用Spring IoC配置Netty

有人用Spring配置Netty吗?

我正在寻找一个关于如何使用Spring配置Netty的示例或描述.

netty

11
推荐指数
1
解决办法
1万
查看次数

HawtDispatch与Java的Executors有何不同?(和netty)

令人沮丧的是,HawtDispatch的网站将其描述为"线程池和NIO事件通知框架API".

我们先来看一下'线程池'部分.Java提供的大多数Exec​​utor也基本上都是线程池.HawtDispatch有何不同?

它显然也是一个"NIO事件通知框架API".我假设它是顶层NIO上的一个薄层,它接收传入数据并传递给它的"线程池"概念,并在线程池调度程序找到时间时将其传递给使用者.正确?(欢迎对NIO进行任何改进).有没有人对netty和HD做过任何性能分析?

threadpool netty

11
推荐指数
1
解决办法
2770
查看次数

Chrome:浏览器关闭时未关闭websocket连接

我正在使用Netty websockets,除了这个小问题,一切似乎都运行正常:

如果我关闭js websocket客户端的浏览器/选项卡,当使用Mozilla firefox(目前使用firefox 14)时,websocket连接会自动关闭,但在Chrome 20/21中也不会发生同样的事情.

任何人看到类似的问题/任何人都可以告诉为什么连接不会自动关闭?

google-chrome websocket netty

11
推荐指数
1
解决办法
6941
查看次数

Netty 4多个客户端

我需要让客户端能够建立许多连接.我使用Netty 4.0.不幸的是,所有现有示例都没有显示如何创建大量连接.

public class TelnetClient {
    private Bootstrap b;
    public TelnetClient() {
        b = new Bootstrap();
    }
    public void connect(String host, int port) throws Exception {
        try {
            b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer());
            Channel ch = b.connect().sync().channel();
            ChannelFuture lastWriteFuture = null;
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            for (;;) {
                String line = in.readLine();
                if (line == null) break;
                lastWriteFuture = ch.write(line + "\r\n");
                if (line.toLowerCase().equals("bye")) {
                    ch.closeFuture().sync();
                    break;
                }
            }
            if (lastWriteFuture != null) lastWriteFuture.sync();
        } finally {
            b.shutdown();
        } …
Run Code Online (Sandbox Code Playgroud)

java connection client netty

11
推荐指数
1
解决办法
8840
查看次数

Netty 4:高写和低写水印

我正在使用Netty 4.我看到了Netty服务器的下列选项:WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK.

官方页面相关文章链接到Norman Maurer的Ne​​tty最佳实践(带视频的幻灯片).幻灯片之一看起来像这样:

ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.childOption(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
bootstrap.childOption(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);   
Run Code Online (Sandbox Code Playgroud)

并有这个前言:

设置理智的WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK

但它是什么WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK?以及如何让他们理智

我没有找到任何明确的信息.谢谢你的帮助.

java tcp-ip netty

11
推荐指数
1
解决办法
6779
查看次数

netty中`sync`和`await`之间的区别

netty syncawait方法有什么区别?两者都阻止当前线程?

谢谢

netty

11
推荐指数
1
解决办法
4855
查看次数

Docker服务在一段时间后停止通信

我有6个容器在docker swarm中运行.Kafka + Zookeeper,MongoDB,A,B,C和Interface.接口是public的主要访问点 - 只有这个容器发布端口 - 5683.接口容器在启动时连接到A,B和C. 我正在使用docker-compose文件+ docker堆栈部署,每个服务都有一个名称,用作接口的主机.一切都成功开始,工作正常.一段时间后(20分钟,1小时......),我无法提出接口请求.接口接收我的请求但应用程序丢失了与服务A,B,C或所有服务的连接.如果我重新启动接口,它可以重新连接到服务A,B,C.

我首先认为这是应用程序的问题,所以我在每个服务(接口,A,B,C)上公开了2个新端口,并与它们连接了探查器和调试器.应用程序正常运行,没有泄漏,没有阻塞的线程,正常工作并等待连接.调试器向我显示,当我向接口发出请求并且接口尝试请求服务A时,抛出了由对等异常重置的连接.

在调试期间,我发现了有趣的东西.我在服务启动时将调试器附加到接口,并且一段时间后调试器也断开连接.+我无法重新连接它,直到我向容器 - >应用程序发出请求.PRoblem - 握手失败.

我发现的另一个有趣的东西是我无法请求任何接口.所以我用wireshark来看看发生了什么事:SYN-ACK很好.然后应用程序发布一些数据和接口响应FIN,ACK.我假设当接口尝试请求服务A并且FIN连接时也会发生这种情况.接口,A,B和C的代码库与netty服务器相同.

最后,我不认为这是一个应用程序问题.为什么?我试图将容器部署为服务.我分别运行每个容器,发布每个端口并将服务端点设置为localhost.(不覆盖网络).它正在发挥作用.容器运行没有问题.+我一开始没有说,java应用程序(接口,A,B,C)在作为独立应用程序运行时运行没有问题 - 而不是在docker中运行.

你能帮我解决一下这个问题吗?为什么在覆盖网络的情况下docker正在关闭套接字?

我正在使用最新的码头工具.我也用过了.

netty docker docker-swarm

11
推荐指数
1
解决办法
3048
查看次数

restTemplate请求到Netty Server挂起线程

RestTemplate示例如下.

public class SimpleClient {

    private final String URL;
    private AsyncRestTemplate rest = new AsyncRestTemplate(new Netty4ClientHttpRequestFactory());
    private RestTemplate restTemplate = new RestTemplate(new Netty4ClientHttpRequestFactory());

    public SimpleClient(String url) {
        this.URL = url;
        Netty4ClientHttpRequestFactory nettyFactory = new Netty4ClientHttpRequestFactory();
        try {
                    nettyFactory.setSslContext(SslContextBuilder.forClient().build());
        } catch (SSLException e) {
            e.printStackTrace();
        }
        rest = new AsyncRestTemplate(nettyFactory);
    }

    @Override
    public ResponseEntity<ResponseData> doSendByPOST(RequestData data,Class<ResponseData> clazz) {

        List<HttpMessageConverter<?>> messageConvertors = new ArrayList<>();
        messageConvertors.add(new MappingJackson2HttpMessageConverter());

        rest.setMessageConverters(messageConvertors);
        restTemplate.setMessageConverters(messageConvertors);

        HttpHeaders headers = new HttpHeaders();
        ObjectMapper objectMapper = new ObjectMapper();
        StringWriter writer = new …
Run Code Online (Sandbox Code Playgroud)

java spring netty resttemplate asyncresttemplate

11
推荐指数
1
解决办法
557
查看次数