From 36be00e0f3cbe0d559c646fd2977e6e3a74aa6f9 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Mon, 30 Sep 2024 16:57:22 +0800 Subject: [PATCH] Merge branch 'bea' of http://120.27.238.55:7000/r/exchange into bea --- src/main/java/com/xcong/excoin/netty/common/ChannelManager.java | 37 +++++++++++++++++++++++++++++++++---- 1 files changed, 33 insertions(+), 4 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 5d158f6..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,9 +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) { + MEMBER_CHANNEL.put(memberId.toString(), channel.id()); + CHANNEL_MEMBER.put(channel.id(), memberId.toString()); } public static void removeWebSocketChannel(Channel channel) { @@ -33,9 +44,27 @@ CHANNEL_MAP.remove(channel.id().asShortText()); } + public static void removeWsChannel(Channel channel, Long memberId) { + MEMBER_CHANNEL.remove(memberId.toString()); + CHANNEL_MEMBER.remove(channel.id()); + } + public static Channel findWebSocketChannel(String id){ ChannelId channelId = CHANNEL_MAP.get(id); return WEBSOCKET_GROUP.find(channelId); + } + + public static Channel findWsChannel(Long id){ + 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() { @@ -46,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