清除多租户功能
This commit is contained in:
@@ -3,7 +3,6 @@ package com.njcn.msgpush.framework.websocket.core.handler;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.TypeUtil;
|
||||
import com.njcn.msgpush.framework.common.util.json.JsonUtils;
|
||||
import com.njcn.msgpush.framework.tenant.core.util.TenantUtils;
|
||||
import com.njcn.msgpush.framework.websocket.core.listener.WebSocketMessageListener;
|
||||
import com.njcn.msgpush.framework.websocket.core.message.JsonWebSocketMessage;
|
||||
import com.njcn.msgpush.framework.websocket.core.util.WebSocketFrameworkUtils;
|
||||
@@ -73,8 +72,7 @@ public class JsonWebSocketMessageHandler extends TextWebSocketHandler {
|
||||
// 2.3 处理消息
|
||||
Type type = TypeUtil.getTypeArgument(messageListener.getClass(), 0);
|
||||
Object messageObj = JsonUtils.parseObject(jsonMessage.getContent(), type);
|
||||
Long tenantId = WebSocketFrameworkUtils.getTenantId(session);
|
||||
TenantUtils.execute(tenantId, () -> messageListener.onMessage(session, messageObj));
|
||||
messageListener.onMessage(session, messageObj);
|
||||
} catch (Throwable ex) {
|
||||
log.error("[handleTextMessage][session({}) message({}) 处理异常]", session.getId(), message.getPayload());
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.njcn.msgpush.framework.websocket.core.session;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.msgpush.framework.security.core.LoginUser;
|
||||
import com.njcn.msgpush.framework.tenant.core.context.TenantContextHolder;
|
||||
import com.njcn.msgpush.framework.websocket.core.util.WebSocketFrameworkUtils;
|
||||
import org.springframework.web.socket.WebSocketSession;
|
||||
|
||||
@@ -95,18 +94,10 @@ public class WebSocketSessionManagerImpl implements WebSocketSessionManager {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
LinkedList<WebSocketSession> result = new LinkedList<>(); // 避免扩容
|
||||
Long contextTenantId = TenantContextHolder.getTenantId();
|
||||
for (List<WebSocketSession> sessions : userSessionsMap.values()) {
|
||||
if (CollUtil.isEmpty(sessions)) {
|
||||
continue;
|
||||
}
|
||||
// 特殊:如果租户不匹配,则直接排除
|
||||
if (contextTenantId != null) {
|
||||
Long userTenantId = WebSocketFrameworkUtils.getTenantId(sessions.get(0));
|
||||
if (!contextTenantId.equals(userTenantId)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
result.addAll(sessions);
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -53,15 +53,5 @@ public class WebSocketFrameworkUtils {
|
||||
return loginUser != null ? loginUser.getUserType() : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得当前用户的租户编号
|
||||
*
|
||||
* @param session Session
|
||||
* @return 租户编号
|
||||
*/
|
||||
public static Long getTenantId(WebSocketSession session) {
|
||||
LoginUser loginUser = getLoginUser(session);
|
||||
return loginUser != null ? loginUser.getTenantId() : null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user