| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.yonge.netty.server.handler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.netty.server.service.UserChannelContextService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.netty.channel.Channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.netty.channel.ChannelHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.netty.channel.ChannelHandlerContext; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,6 +24,8 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private NettyChannelManager channelManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private UserChannelContextService userChannelContextService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public void channelActive(ChannelHandlerContext ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 从管理器中添加 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,6 +34,7 @@ public class NettyServerHandler extends ChannelInboundHandlerAdapter { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public void channelUnregistered(ChannelHandlerContext ctx) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		userChannelContextService.remove(ctx.channel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		// 从管理器中移除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		channelManager.remove(ctx.channel()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,6 +42,7 @@ 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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 |