From 0998501c9386bb317bef633b79583fe952072ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Fri, 26 Jul 2024 19:17:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E7=BA=BF=E4=BA=8B=E4=BB=B6=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/zchd/zim/ImChatWebSocket.java | 10 +++++++++- src/com/zchd/zim/ImMessageMonitor.java | 4 ---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/com/zchd/zim/ImChatWebSocket.java b/src/com/zchd/zim/ImChatWebSocket.java index ead4633..9ca460b 100644 --- a/src/com/zchd/zim/ImChatWebSocket.java +++ b/src/com/zchd/zim/ImChatWebSocket.java @@ -6,6 +6,7 @@ import com.zchd.base.util.Utils; import com.zchd.zim.entity.ChannelMessage; import com.zchd.zim.entity.FriendMessage; import com.zchd.zim.entity.ImUser; +import net.tccn.zhub.ZHubClient; import org.redkale.net.http.HttpRequest; import org.redkale.net.http.RestOnMessage; import org.redkale.net.http.RestWebSocket; @@ -31,6 +32,9 @@ public class ImChatWebSocket extends WebSocket { @Resource(name = "int_cache") protected MyRedisCacheSource intCache; + @Resource(name = "zhub") + protected ZHubClient zhub; + @Resource protected ImAccountService accountService; @Resource @@ -75,6 +79,8 @@ public class ImChatWebSocket extends WebSocket { final int userid = (int) getUserid(); getLogger().info("im:state-change:" + userid + "---ws connected---"); intCache.setBit("im:user", userid, true); + // 推送离线状态 + zhub.publish("im:online:" + getAttribute("appid"), getAttribute("guserid")); // 上线开启订阅 messageMonitor.online(userid); // 拉取离线消息 @@ -166,7 +172,9 @@ public class ImChatWebSocket extends WebSocket { public CompletableFuture onClose(int code, String reason) { final int userid = (int) getUserid(); getLogger().info("im:state-change:" + userid + "---close---" + code + "---" + reason); - intCache.setBit("im:user:", userid, false); + intCache.setBit("im:user", userid, false); + // 推送离线状态 + zhub.publish("im:offline:" + getAttribute("appid"), getAttribute("guserid")); // 取消用户订阅 messageMonitor.offline(userid); return null; diff --git a/src/com/zchd/zim/ImMessageMonitor.java b/src/com/zchd/zim/ImMessageMonitor.java index adbec10..73699a5 100644 --- a/src/com/zchd/zim/ImMessageMonitor.java +++ b/src/com/zchd/zim/ImMessageMonitor.java @@ -74,8 +74,6 @@ public class ImMessageMonitor extends BaseService { list.forEach(x -> { subscribeChannel(userid, x.buildChannelid()); }); - // 推送上线状态 - zhub.publish("im:online", chatService.getGuserid(userid)); // 开启对点订阅 zhub.subscribe("im:friend:" + userid, new TypeToken() { @@ -93,8 +91,6 @@ public class ImMessageMonitor extends BaseService { // 取消点对点订阅 zhub.unsubscribe("im:friend:" + userid); - // 推送离线状态 - zhub.publish("im:offline", chatService.getGuserid(userid)); // 取消频道订阅 List list = chatService.userChannels(userid);