修改:用户上下线事件推送
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.ChannelMessage;
|
||||||
import com.zchd.zim.entity.FriendMessage;
|
import com.zchd.zim.entity.FriendMessage;
|
||||||
import com.zchd.zim.entity.ImUser;
|
import com.zchd.zim.entity.ImUser;
|
||||||
|
import net.tccn.zhub.ZHubClient;
|
||||||
import org.redkale.net.http.HttpRequest;
|
import org.redkale.net.http.HttpRequest;
|
||||||
import org.redkale.net.http.RestOnMessage;
|
import org.redkale.net.http.RestOnMessage;
|
||||||
import org.redkale.net.http.RestWebSocket;
|
import org.redkale.net.http.RestWebSocket;
|
||||||
@ -31,6 +32,9 @@ public class ImChatWebSocket extends WebSocket {
|
|||||||
@Resource(name = "int_cache")
|
@Resource(name = "int_cache")
|
||||||
protected MyRedisCacheSource<Integer> intCache;
|
protected MyRedisCacheSource<Integer> intCache;
|
||||||
|
|
||||||
|
@Resource(name = "zhub")
|
||||||
|
protected ZHubClient zhub;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
protected ImAccountService accountService;
|
protected ImAccountService accountService;
|
||||||
@Resource
|
@Resource
|
||||||
@ -75,6 +79,8 @@ public class ImChatWebSocket extends WebSocket {
|
|||||||
final int userid = (int) getUserid();
|
final int userid = (int) getUserid();
|
||||||
getLogger().info("im:state-change:" + userid + "---ws connected---");
|
getLogger().info("im:state-change:" + userid + "---ws connected---");
|
||||||
intCache.setBit("im:user", userid, true);
|
intCache.setBit("im:user", userid, true);
|
||||||
|
// 推送离线状态
|
||||||
|
zhub.publish("im:online:" + getAttribute("appid"), getAttribute("guserid"));
|
||||||
// 上线开启订阅
|
// 上线开启订阅
|
||||||
messageMonitor.online(userid);
|
messageMonitor.online(userid);
|
||||||
// 拉取离线消息
|
// 拉取离线消息
|
||||||
@ -166,7 +172,9 @@ public class ImChatWebSocket extends WebSocket {
|
|||||||
public CompletableFuture onClose(int code, String reason) {
|
public CompletableFuture onClose(int code, String reason) {
|
||||||
final int userid = (int) getUserid();
|
final int userid = (int) getUserid();
|
||||||
getLogger().info("im:state-change:" + userid + "---close---" + code + "---" + reason);
|
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);
|
messageMonitor.offline(userid);
|
||||||
return null;
|
return null;
|
||||||
|
@ -74,8 +74,6 @@ public class ImMessageMonitor extends BaseService {
|
|||||||
list.forEach(x -> {
|
list.forEach(x -> {
|
||||||
subscribeChannel(userid, x.buildChannelid());
|
subscribeChannel(userid, x.buildChannelid());
|
||||||
});
|
});
|
||||||
// 推送上线状态
|
|
||||||
zhub.publish("im:online", chatService.getGuserid(userid));
|
|
||||||
|
|
||||||
// 开启对点订阅
|
// 开启对点订阅
|
||||||
zhub.subscribe("im:friend:" + userid, new TypeToken<FriendMessage>() {
|
zhub.subscribe("im:friend:" + userid, new TypeToken<FriendMessage>() {
|
||||||
@ -93,8 +91,6 @@ public class ImMessageMonitor extends BaseService {
|
|||||||
|
|
||||||
// 取消点对点订阅
|
// 取消点对点订阅
|
||||||
zhub.unsubscribe("im:friend:" + userid);
|
zhub.unsubscribe("im:friend:" + userid);
|
||||||
// 推送离线状态
|
|
||||||
zhub.publish("im:offline", chatService.getGuserid(userid));
|
|
||||||
|
|
||||||
// 取消频道订阅
|
// 取消频道订阅
|
||||||
List<ChannelUser> list = chatService.userChannels(userid);
|
List<ChannelUser> list = chatService.userChannels(userid);
|
||||||
|
Loading…
Reference in New Issue
Block a user