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

免费网页代理ip地址网站网站后台模板安装显示不了

免费网页代理ip地址网站,网站后台模板安装显示不了,大型电商网站开发,网站主题旁边的图标怎么做断连重试有以下两点考虑: 1、连接异常,比如网络抖动导致连接失败; 2、连接过程中断开连接重试; 主要用到两个工具类: ChannelFutureListener监听ChannelFuture..isSuccess(); 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 ChannelInitializer<SocketChannel>() {@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.yayakq.cn/news/631304/

相关文章:

  • 珠海网站推广公司品牌设计工作内容
  • 深圳做网站500元静态页面生成器
  • 广州知名网站建设网页设计服务百度公司全称叫什么
  • 企业官方网站制作推广软件单位网站建设管理情况
  • 网站开发职业生涯规划书网站建设找哪一家比较好
  • 廊坊网站备案网络推广网站河南
  • 中企动力优秀网站网站解析记录值
  • 网站首页被降权人力资源公司简介
  • 如何搜索网站洪梅东莞网站建设
  • 深圳网站设计有限公司个人做网站需要学什么只是
  • 如何加强旅游电子商务网站的建设做网站南充
  • 备案关闭网站建设影响校园网站建设方案模板下载
  • 企业网站备案系统软装设计公司哪家好
  • 响应式网站后台wordpress lumen
  • 专注聊城做网站的公司做金融培训的网站
  • 中国十大管理咨询公司排名网站优化建设宁夏
  • 你做我评网站会自动查论文相似度吗咨询公司的经营范围有哪些
  • 个人网站模板h5wordpress 插件 教程视频教程
  • 贵阳企业网站模板电商网站怎么做优化
  • cms大型门户网站莒县网站设计
  • 瑞安联科网站建设免费ppt模板资源
  • 网站建设图片安徽建设银行网站
  • 长沙模板建站源码网站 权重
  • 贵阳网站制作方舟网络给网站做路由
  • 深圳网站建设总部2021年网站有人分享吗
  • domino 网站开发jsp网站开发教学
  • 数据库怎么做网站毕设做系统好还是做网站好
  • 临沂市建设局的网站桂林旅游必去十大景点
  • 网站超市源码创建公司为什么必须三个人
  • 济宁市做网站学校网站建设开发商