浏览代码

Merge remote-tracking branch 'origin/saas' into saas

zouxuan 2 年之前
父节点
当前提交
f7eaf03cad

+ 1 - 0
audio-analysis/src/main/java/com/yonge/netty/server/handler/NettyChannelManager.java

@@ -83,6 +83,7 @@ public class NettyChannelManager {
 	 * @param channel Channel
 	 */
 	public void remove(Channel channel) {
+		
 		// 移除 channels
 		channels.remove(channel.id());
 

+ 11 - 0
audio-analysis/src/main/java/com/yonge/netty/server/handler/NettyServerHandler.java

@@ -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();
 	}