From f6a912c1a6a26c809568f964941fb4ad4483274e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 31 May 2021 11:19:40 +0800
Subject: [PATCH] modify
---
src/main/java/com/xcong/excoin/netty/common/ChannelManager.java | 32 +++++++++++++++++++++++---------
1 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java b/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java
index 0167807..6e16771 100644
--- a/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java
+++ b/src/main/java/com/xcong/excoin/netty/common/ChannelManager.java
@@ -23,14 +23,20 @@
// 当前连接到服务器的通道(tcp和websocket)
private static final ConcurrentMap<String, ChannelId> CHANNEL_MAP = new ConcurrentHashMap<>();
+ // key - 用户ID value - 通道ID
+ private static final ConcurrentMap<String, ChannelId> MEMBER_CHANNEL = new ConcurrentHashMap<>();
+
+ // key - 通道 value - 用户
+ private static final ConcurrentMap<ChannelId, String> CHANNEL_MEMBER = new ConcurrentHashMap<>();
+
public static void addWebSocketChannel(Channel channel) {
WEBSOCKET_GROUP.add(channel);
CHANNEL_MAP.put(channel.id().asShortText(), channel.id());
}
public static void addWsChannel(Channel channel, Long memberId) {
- WEBSOCKET_GROUP.add(channel);
- CHANNEL_MAP.put(memberId.toString(), channel.id());
+ MEMBER_CHANNEL.put(memberId.toString(), channel.id());
+ CHANNEL_MEMBER.put(channel.id(), memberId.toString());
}
public static void removeWebSocketChannel(Channel channel) {
@@ -39,8 +45,8 @@
}
public static void removeWsChannel(Channel channel, Long memberId) {
- WEBSOCKET_GROUP.remove(channel);
- CHANNEL_MAP.remove(memberId.toString());
+ MEMBER_CHANNEL.remove(memberId.toString());
+ CHANNEL_MEMBER.remove(channel.id());
}
public static Channel findWebSocketChannel(String id){
@@ -49,8 +55,16 @@
}
public static Channel findWsChannel(Long id){
- ChannelId channelId = CHANNEL_MAP.get(id.toString());
+ ChannelId channelId = MEMBER_CHANNEL.get(id.toString());
+ if (channelId == null) {
+ return null;
+ }
+
return WEBSOCKET_GROUP.find(channelId);
+ }
+
+ public static String findWsMemberId(Channel channel) {
+ return CHANNEL_MEMBER.get(channel.id());
}
public static ChannelGroup getWebSocketGroup() {
@@ -61,10 +75,10 @@
if (WEBSOCKET_GROUP.size() == 0) {
return;
}
- ResponseBean responseBean = ResponseBean.ok(type, null);
- responseBean.putInfo("data", object);
- String msg = JSONObject.toJSONString(responseBean);
- WEBSOCKET_GROUP.writeAndFlush(NettyTools.webSocketBytes(msg));
+// ResponseBean responseBean = ResponseBean.ok(type, null);
+// responseBean.putInfo("data", object);
+// String msg = JSONObject.toJSONString(responseBean);
+// WEBSOCKET_GROUP.writeAndFlush(NettyTools.webSocketBytes(msg));
}
--
Gitblit v1.9.1