修改:用户上下线事件推送
This commit is contained in:
parent
df343d2731
commit
0998501c93
@ -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<Integer> 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;
|
||||
|
@ -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<FriendMessage>() {
|
||||
@ -93,8 +91,6 @@ public class ImMessageMonitor extends BaseService {
|
||||
|
||||
// 取消点对点订阅
|
||||
zhub.unsubscribe("im:friend:" + userid);
|
||||
// 推送离线状态
|
||||
zhub.publish("im:offline", chatService.getGuserid(userid));
|
||||
|
||||
// 取消频道订阅
|
||||
List<ChannelUser> list = chatService.userChannels(userid);
|
||||
|
Loading…
Reference in New Issue
Block a user