Netty客户端断线重连
参考:https://www.jianshu.com/p/c78b37a2ca47
与安卓交互需要用到 特此记录
public class NettyClient {public final static String HOST = "192.168.31.178";public final static int PORT = 9527;private static EventLoopGroup workerGroup = null;private Channel channel;//重连调用的函数public Channel connect(String host, int port) {doConnect(host, port);return this.channel;}public void doConnect(String host, int port) {try {//设置一个多线程循环器workerGroup = new NioEventLoopGroup();//启动附注类Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerGroup);//指定所使用的NIO传输channelbootstrap.channel(NioSocketChannel.class);//指定客户端初始化处理bootstrap.handler(new ClientIniterHandler());//连接服务// Channel channel = bootstrap.connect(host, port).sync().channel();ChannelFuture f = bootstrap.connect(host, port);f.addListener(new ConnectionListener());channel = f.channel();} catch (Exception e) {e.printStackTrace();System.exit(1);}}
public class ConnectionListener implements ChannelFutureListener {private NettyClient nettyClient = new NettyClient();@Overridepublic void operationComplete(ChannelFuture channelFuture) throws Exception {if (!channelFuture.isSuccess()) {final EventLoop loop = channelFuture.channel().eventLoop();loop.schedule(new Runnable() {@Overridepublic void run() {Log.e("ConnectionListener: " ,"服务端链接不上,开始重连操作.." );nettyClient.connect(NettyClient.HOST, NettyClient.PORT);}}, 1L, TimeUnit.SECONDS);} else {Log.e("ConnectionListener: " ,"服务端链接成功..." );}}
}
//有异常 关闭@Overridepublic void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {super.exceptionCaught(ctx, cause);ctx.close();}//服务端突然挂了@Overridepublic void channelInactive(ChannelHandlerContext ctx) throws Exception {Log.e("channelInactive: " ,"掉线了..." );//使用过程中断线重连final EventLoop eventLoop = ctx.channel().eventLoop();eventLoop.schedule(new Runnable() {@Overridepublic void run() {nettyClient.connect(NettyClient.HOST, NettyClient.PORT);}}, 1L, TimeUnit.SECONDS);super.channelInactive(ctx);}
Netty客户端断线重连相关推荐
- Netty客户端断线重连实现及问题思考
点击关注公众号,利用碎片时间学习 前言 在实现TCP长连接功能中,客户端断线重连是一个很常见的问题,当我们使用netty实现断线重连时,是否考虑过如下几个问题: 如何监听到客户端和服务端连接断开 ? ...
- Netty的断线重连
因为工作中经常使用到TCP,所以会频繁使用到诸如Mina或Netty之类的通信框架,为了方便项目的逻辑调用,经常会在框架的基础上再一次进行封装,这样做其实有画蛇添足的嫌疑,但也是无奈之举. 这里主要记 ...
- Android 通过 NSD 服务 Netty(断线重连、心跳、黏包处理) 实现两个 Android 系统端的长连接通讯
引言 近期需求,通过手机App端取号机(含叫号通知功能),实时连接 另一台 Android 广告机用于播放当前被叫到的号数. 这里有两种Android 机 一台「基于Sunmi版的可出小票的Andro ...
- Labview 编写TCP/IP 客户端断线重连机制程序,亲测可用
程序面板如下图: 此程序支持任意一方断线重连机制,仅供大家参考! 实际工程中,如果出现服务器出现宕机,那么我们的客户端要有重连的机制,不然软件不会自动连接服务器,明显是我们程序编写的一个漏洞,无论是从 ...
- springboot集成websocket(一)客户端、客户端断线重连、客户端连接验证
springboot集成websocket客户端 一.首先是导入依赖包 1.在pom.xml中加入下述即可 <!--websocket作为客户端 --><dependency> ...
- Socket编程概念和 Socket之异步TCP客户端断线重连
一:什么是SOCKET socket的英文原义是"孔"或"插座".作为进程通信机制,取后一种意思.通常也称作"套接字",用于描 ...
- TCP客户端断线重连-升级版
解决拔掉网线后无法快速诊断是否掉线问题 using System.Collections; using System.Collections.Generic; using System.Net; us ...
- Netty是如何实现TCP心跳机制与断线重连的
本文来说下Netty 是如何实现 TCP 心跳机制与断线重连的 文章目录 什么是心跳机制HeartBeat 如何实现心跳机制 Netty实现自定义的心跳机制 服务端 客户端 测试效果 客户端断线重连 ...
- 天天炫斗服务器维修,【天天炫斗】弱网处理及断线重连方案
[天天炫斗]弱网处理及断线重连方案 --hessionhe 一背景及问题描述 天天炫斗采用的是TCP长连接方式,消息交互使用的是TDR方案,弱网问题以及断线重连的情况在手游运营中都是非常普遍的,也会相 ...
- 手机游戏断线重连的实现
1.断线重连的必要性 在端游时代,因为游戏环境比较固定,断网的可能比较小,断线重连就没有那么重要,甚至有的游戏都没有断线重连,判断你断线了直接返回到登录界面,走重新登录的流程. 但在移动设备的情况下, ...
最新文章
- 如何通过“流量线索”进行恶意程序感染分析
- 前端学习(3241):react生命周期forceUpdate
- Apache NIO 框架 Mina 使用中出现 too many open files 有关...
- 【数据仓库】——星型模型和雪花模型
- SQL:postgresqll查询某字段各情况数量
- 2022最全知识点——RF接口自动化框架项目实战
- android 音乐平板,酷狗音乐安卓Pad版
- Java FTP下载文件
- macOS 升级12.6后 Electron 应用闪退
- python添加图片要怎么弄_python怎么实现添加图片
- PO、VO、DO、TO、DTO、 BO、 QO、DAO、POJO
- Ubuntu修改系统时间到北京时间的步骤
- iOS -- 使用蒲公英进行内测
- ## 看看sass和less会遇到的问题吧
- 如何修改视频分辨率?
- 《星际探索》首席数码绘景师为你解析Blender场景制作
- 模型稳定度指标PSI
- [C++贪心习题]压缩歌曲
- 渗透测试--3.1.社会工程学攻击
- 诺基亚智能手机未来仅采用Symbian和MeeGo系统
热门文章
- C# winform 魔兽MH全图制作教程(3):魔兽1.20E.1.24B.1.24E全图内存地址 转自breeze...
- Echarts直角坐标系x轴y轴属性设置大全
- 2017计算机四级网络工程师,2017计算机四级网络工程师真题练习
- 输入法兼容 android,搜狗输入法5.1版发布 兼容Android 4.4
- win10自带邮箱无法登录QQ邮箱
- google建立快讯推荐被引用文章
- 143_iOS干货50_认识几个概念:跨域问题和内网穿透
- 一加8 pro 刷入 kali Hunter
- 阐述篇-聊聊我眼中の《面试宝典》
- 7-6 红包 (20 分)