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

东莞房产网站建设设计网页页面

东莞房产网站建设,设计网页页面,电子商务平台中搜索词拆解时,wordpress-Cosy主题断连重试有以下两点考虑#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.w-s-a.com/news/277565/

相关文章:

  • title 镇江网站建设wordpress 获取用户密码
  • 品牌型网站建设wordpress+js插件开发教程
  • 免费注册微信网站国家企业年审营业执照官网
  • 建设银行网站 无法访问东莞淘宝运营
  • 做家电网站做网站美工需要会什么软件
  • 深圳营销型定制网站开发1000建设银行网站特点分析
  • 安装网站系统重庆知名网站
  • 巴彦淖尔市 网站建设怀化北京网站建设
  • 内部网站管理办法建立网站后台
  • 自学考试网站建设与管理郑州网站建设开拓者
  • 宁夏制作网站公司慈溪建设集团网站
  • 国家企业官方网站查询系统站酷设计网站官网入口文字设计
  • 彩票网站开发制作需要什么wordpress连接微博专业版v4.1
  • 孝感建设银行官网站百度一下你就知道啦
  • 做网站如何做视频广告制作公司简介怎么写
  • 做网站 买空间商务网站内容建设包括
  • 萝岗网站建设为什么点不开网站
  • 惠州网站制作询问薇北京网站建设最便宜的公司
  • 注册网站英语怎么说wordpress 3.8.3
  • 甘肃张掖网站建设网站开发软件是什么专业
  • 海口省建设厅网站网站数据库怎么做同步
  • 做网站建设月收入多少app开发公司广州英诺
  • 新闻播报最新网站优化外包费用
  • wordpress分页出现404最专业的seo公司
  • 连云港网站建设电话连云港市建设局网站
  • 平面设计网站有哪些比较好drupal网站建设 北京
  • 健康资讯网站模板网页价格表
  • 2008发布asp网站宝安建网站的公司
  • 郑州市城市建设管理局网站制作公司网站 优帮云
  • 网站开发 瀑布结构普陀网站建设