当前位置: 首页 > news >正文

免费网页代理ip地址网站著名网站设计

免费网页代理ip地址网站,著名网站设计,深圳关键词首页排名,业务网站建设断连重试有以下两点考虑#xff1a; 1、连接异常#xff0c;比如网络抖动导致连接失败#xff1b; 2、连接过程中断开连接重试#xff1b; 主要用到两个工具类#xff1a; ChannelFutureListener监听ChannelFuture..isSuccess()#xff1b; ChannelInboundHandlerAd…断连重试有以下两点考虑 1、连接异常比如网络抖动导致连接失败 2、连接过程中断开连接重试 主要用到两个工具类 ChannelFutureListener监听ChannelFuture..isSuccess() ChannelInboundHandlerAdapter重写channelInactive当连接变为不活跃则回调该方法。 完整代码如下 Component public class WebSocketClient {private Channel channel;private Bootstrap bootstrap;private URI uri;private MessageHandler messageHandler;private WebSocketClientHandler handler;private volatile AtomicInteger atomicCount new AtomicInteger(0);public WebSocketClient initClient(String host, MessageHandler messageHandler) throws Exception {this.messageHandler messageHandler;if (StringUtils.isEmpty(host)) {throw new RuntimeException(未配置host.);}uri new URI(host);String scheme uri.getScheme() null? WssSchemeEnum.WS.getValue() : uri.getScheme();//判断是否ssl连接如果是则设置为可信final boolean ssl WssSchemeEnum.WSS.getValue().equalsIgnoreCase(scheme);final SslContext sslCtx;if (ssl) {sslCtx SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();} else {sslCtx null;}EventLoopGroup group new NioEventLoopGroup();try {bootstrap new Bootstrap();bootstrap.group(group).channel(NioSocketChannel.class).handler(new ChannelInitializerSocketChannel() {Overrideprotected void initChannel(SocketChannel ch) {ChannelPipeline p ch.pipeline();p.addFirst(new ChannelInboundHandlerAdapter() {Overridepublic void channelInactive(ChannelHandlerContext ctx) throws Exception {log.error(【{}】检测到wss断连, 第 {} 次发起重连., exchange, atomicCount.incrementAndGet());super.channelInactive(ctx);ctx.channel().eventLoop().schedule(WebSocketClient.this::doConnect, 3000, TimeUnit.MILLISECONDS);}});if (sslCtx ! null) {p.addLast(sslCtx.newHandler(ch.alloc(), uri.getHost(), getUriPort(uri)));}p.addLast(new HttpClientCodec());p.addLast(new HttpObjectAggregator(8192));p.addLast(WebSocketClientCompressionHandler.INSTANCE);handler new WebSocketClientHandler(WebSocketClientHandshakerFactory.newHandshaker(uri, WebSocketVersion.V13, null, true, new DefaultHttpHeaders()), exchange, messageHandler);p.addLast(handler);}});} catch (Exception e) {log.error(wss创建client异常. e:, e);if (bootstrap ! null) {bootstrap.config().group().shutdownGracefully();}throw new RuntimeException(初始化wss连接异常. e: e);}doConnect();return this;}public void doConnect() {try {ChannelFuture future bootstrap.connect(uri.getHost(), getUriPort(uri)).sync();handler.handshakeFuture().sync();future.addListener((ChannelFutureListener) cf - {if (future.isSuccess()) {channel future.channel();WssManger.addChannel(exchange, channel);log.info(连接成功.);messageHandler.connectSuccessAction(future.channel());atomicCount.set(0);} else {log.error(监听断连, wss第 {} 次发起重连. , atomicCount.incrementAndGet());future.channel().eventLoop().schedule(WebSocketClient.this::doConnect, 3000, TimeUnit.MILLISECONDS);}});}catch (Exception e) {log.error(连接异常. e: e);if (bootstrap ! null) {log.info(wss连接异常第 {} 次发起重连., atomicCount.incrementAndGet());bootstrap.config().group().schedule(WebSocketClient.this::doConnect, 3000, TimeUnit.MILLISECONDS);}}}/*** 根据URI获取对应的port** param uri uri* return port*/private int getUriPort(URI uri) {String scheme uri.getScheme() null? WssSchemeEnum.WS.getValue() : uri.getScheme();if (!WssSchemeEnum.allScheme().contains(scheme)) {throw new RuntimeException(Only WS(S) is supported.);}if (uri.getPort() -1) {if (WssSchemeEnum.WS.getValue().equalsIgnoreCase(scheme)) {return WssSchemeEnum.WS.getPort();} else if (WssSchemeEnum.WSS.getValue().equalsIgnoreCase(scheme)) {return WssSchemeEnum.WSS.getPort();} else {return -1;}} else {return uri.getPort();}} }
http://www.hkea.cn/news/14458069/

相关文章:

  • 关于国家对网站建设在线短网址缩短工具
  • 浙江省邮电工程建设有限公司网站去哪里做网站比较好
  • 用js做自适应网站做淘宝客最大的网站是叫什么名字
  • 石家庄的网站开发公司国内图片素材网站
  • wordpress登录接口网站做优化效果怎么样
  • 外包做网站不付尾款app在线制作网站
  • 响应式网站建站平台天眼查企业查询官网网页版
  • 常见的网站开发工具重庆公司网站
  • 云南百度智能建站郑州做网站公司哪家好
  • 网站营销单页怎么做高端 网站开发
  • 网络公司哪家好上海抖音seo公司
  • 青岛爱城市网app官方网站ps做游戏下载网站有哪些
  • 网页跳转到其它网站芜湖市建设银行支行网站
  • 电脑软件和网站怎么做专门做外贸网站
  • 网站主题模板下载安装上海浦东建筑建设网站
  • 网站开发人员没有按照设计开发为什么要建设营销型网站
  • 外链发布平台做网站优化就是发文章吗
  • 我想做京东网站淘宝怎么做企业培训心得体会
  • 社交网站建设需求分析app页面设计软件
  • o2o网站建设案例具有价值的网站建设平台
  • 管理网站建设哪家公司好个人网站备案技巧
  • 建网站免费软件青羊区建设厅网站
  • 网站策划书的内容网站建设购物商城
  • 网站建设咨询电话长沙网站推广公司哪家好
  • 凡科做网站在百度能看见吗绵阳模板网站
  • 钱宝做任务的网站怎么下动易网站建设
  • 网站发展趋势西安网页制作模板
  • 襄阳市建设局网站html网页设计代码简单例子
  • 如何设置wordpress的语言上海网站快速排名优化
  • 深圳网站建设开发哪家好焦作会计做继续教育在哪个网站