|
@@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.security.oauth2.common.OAuth2AccessToken;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
+import com.yonge.netty.server.service.UserChannelContextService;
|
|
|
+
|
|
|
@Component
|
|
|
@ChannelHandler.Sharable
|
|
|
public class NettyServerHandler extends ChannelInboundHandlerAdapter {
|
|
@@ -22,6 +24,9 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
|
|
@Autowired
|
|
|
private NettyChannelManager channelManager;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserChannelContextService userChannelContextService;
|
|
|
|
|
|
@Override
|
|
|
public void channelActive(ChannelHandlerContext ctx) {
|
|
@@ -31,6 +36,9 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
|
|
|
@Override
|
|
|
public void channelUnregistered(ChannelHandlerContext ctx) {
|
|
|
+
|
|
|
+ userChannelContextService.remove(ctx.channel());
|
|
|
+
|
|
|
// 从管理器中移除
|
|
|
channelManager.remove(ctx.channel());
|
|
|
}
|
|
@@ -38,6 +46,9 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter {
|
|
|
@Override
|
|
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
|
|
LOGGER.error("[exceptionCaught][连接({}) 发生异常]", ctx.channel().id(), cause);
|
|
|
+
|
|
|
+ userChannelContextService.remove(ctx.channel());
|
|
|
+
|
|
|
// 断开连接
|
|
|
ctx.channel().close();
|
|
|
}
|