From 5575818556096be1dadaf5ff356b5db4c832aaa2 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 26 May 2021 19:27:09 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/netty/handler/WebSocketServerHandler.java | 71 ++++++++++++++++++-----------------
1 files changed, 36 insertions(+), 35 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/netty/handler/WebSocketServerHandler.java b/src/main/java/com/xcong/excoin/netty/handler/WebSocketServerHandler.java
index 2ceb827..a6d7bef 100644
--- a/src/main/java/com/xcong/excoin/netty/handler/WebSocketServerHandler.java
+++ b/src/main/java/com/xcong/excoin/netty/handler/WebSocketServerHandler.java
@@ -38,14 +38,14 @@
@ChannelHandler.Sharable
public class WebSocketServerHandler extends ChannelInboundHandlerAdapter {
- private final ConcurrentMap<String, Integer> pingTimes = new ConcurrentHashMap<>();
+// private final ConcurrentMap<String, Integer> pingTimes = new ConcurrentHashMap<>();
private static final int MAX_UN_REC_PING_TIMES = 3;
private WebSocketServerHandshaker handshaker;
- @Resource(name = "msgDispatch")
- private MsgDispatch msgDispatch;
+// @Resource(name = "msgDispatch")
+// private MsgDispatch msgDispatch;
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
@@ -76,7 +76,7 @@
if (content.contains(Contans.HEART_BEAT)) {
resetTimes(ctx.channel());
} else {
- this.msgDispatch.webSocketDispatch(ctx, content);
+// this.msgDispatch.webSocketDispatch(ctx, content);
}
} catch (ClassCastException e) {
content = ((CloseWebSocketFrame) frame).reasonText();
@@ -88,40 +88,40 @@
@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {
log.info("[触发器触发]");
- if (evt instanceof IdleStateEvent) {
- IdleStateEvent event = (IdleStateEvent) evt;
- if (event.state() == IdleState.READER_IDLE) {
-
- } else if (event.state() == IdleState.WRITER_IDLE) {
- /*写超时*/
- ctx.channel().writeAndFlush(NettyTools.webSocketBytes(Contans.HEART_BEAT));
- Integer times = pingTimes.get(ctx.channel().id().asShortText());
- if (times == null) {
- times = 0;
- }
- /*读超时*/
- log.info("===服务端===({}写超时, {})", ctx.channel().id().asShortText(), times);
- // 失败计数器次数大于等于3次的时候,关闭链接,等待client重连
- if (times >= MAX_UN_REC_PING_TIMES) {
- log.info("===服务端===(写超时,关闭chanel)");
- // 连续超过N次未收到client的ping消息,那么关闭该通道,等待client重连
- ctx.channel().close();
- } else {
- // 失败计数器加1
- times++;
- pingTimes.remove(ctx.channel().id().asShortText());
- pingTimes.put(ctx.channel().id().asShortText(), times);
- }
- } else if (event.state() == IdleState.ALL_IDLE) {
- /*总超时*/
- System.out.println("===服务端===(ALL_IDLE 总超时)");
- }
- }
+// if (evt instanceof IdleStateEvent) {
+// IdleStateEvent event = (IdleStateEvent) evt;
+// if (event.state() == IdleState.READER_IDLE) {
+//
+// } else if (event.state() == IdleState.WRITER_IDLE) {
+// /*写超时*/
+// ctx.channel().writeAndFlush(NettyTools.webSocketBytes(Contans.HEART_BEAT));
+// Integer times = pingTimes.get(ctx.channel().id().asShortText());
+// if (times == null) {
+// times = 0;
+// }
+// /*读超时*/
+// log.info("===服务端===({}写超时, {})", ctx.channel().id().asShortText(), times);
+// // 失败计数器次数大于等于3次的时候,关闭链接,等待client重连
+// if (times >= MAX_UN_REC_PING_TIMES) {
+// log.info("===服务端===(写超时,关闭chanel)");
+// // 连续超过N次未收到client的ping消息,那么关闭该通道,等待client重连
+// ctx.channel().close();
+// } else {
+// // 失败计数器加1
+// times++;
+// pingTimes.remove(ctx.channel().id().asShortText());
+// pingTimes.put(ctx.channel().id().asShortText(), times);
+// }
+// } else if (event.state() == IdleState.ALL_IDLE) {
+// /*总超时*/
+// System.out.println("===服务端===(ALL_IDLE 总超时)");
+// }
+// }
}
private void resetTimes(Channel channel) {
- pingTimes.remove(channel.id().asShortText());
- pingTimes.put(channel.id().asShortText(), 0);
+// pingTimes.remove(channel.id().asShortText());
+// pingTimes.put(channel.id().asShortText(), 0);
}
@Override
@@ -132,6 +132,7 @@
private void handlerWebSocketFrame(ChannelHandlerContext ctx, WebSocketFrame frame) {
+ System.out.println(111111111);
// 判断是否关闭链路的指令
if (frame instanceof CloseWebSocketFrame) {
handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
--
Gitblit v1.9.1