Add WebSocket methods for sending messages to specific tenants
This commit is contained in:
@@ -39,6 +39,27 @@ public interface WebSocketSenderApi {
|
||||
*/
|
||||
void send(String sessionId, String messageType, String messageContent);
|
||||
|
||||
/**
|
||||
* 发送消息给指定租户的指定用户
|
||||
*
|
||||
* @param tenantId 租户编号
|
||||
* @param userType 用户类型
|
||||
* @param userId 用户编号
|
||||
* @param messageType 消息类型
|
||||
* @param messageContent 消息内容,JSON 格式
|
||||
*/
|
||||
void sendToTenant(Long tenantId, Integer userType, Long userId, String messageType, String messageContent);
|
||||
|
||||
/**
|
||||
* 发送消息给指定租户的指定用户类型
|
||||
*
|
||||
* @param tenantId 租户编号
|
||||
* @param userType 用户类型
|
||||
* @param messageType 消息类型
|
||||
* @param messageContent 消息内容,JSON 格式
|
||||
*/
|
||||
void sendToTenant(Long tenantId, Integer userType, String messageType, String messageContent);
|
||||
|
||||
default void sendObject(Integer userType, Long userId, String messageType, Object messageContent) {
|
||||
send(userType, userId, messageType, JsonUtils.toJsonString(messageContent));
|
||||
}
|
||||
@@ -51,4 +72,12 @@ public interface WebSocketSenderApi {
|
||||
send(sessionId, messageType, JsonUtils.toJsonString(messageContent));
|
||||
}
|
||||
|
||||
default void sendObjectToTenant(Long tenantId, Integer userType, Long userId, String messageType, Object messageContent) {
|
||||
sendToTenant(tenantId, userType, userId, messageType, JsonUtils.toJsonString(messageContent));
|
||||
}
|
||||
|
||||
default void sendObjectToTenant(Long tenantId, Integer userType, String messageType, Object messageContent) {
|
||||
sendToTenant(tenantId, userType, messageType, JsonUtils.toJsonString(messageContent));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package cn.iocoder.yudao.module.infra.api.websocket;
|
||||
|
||||
import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
|
||||
import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -31,4 +32,18 @@ public class WebSocketSenderApiImpl implements WebSocketSenderApi {
|
||||
webSocketMessageSender.send(sessionId, messageType, messageContent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendToTenant(Long tenantId, Integer userType, Long userId, String messageType, String messageContent) {
|
||||
TenantUtils.execute(tenantId, () -> {
|
||||
webSocketMessageSender.send(userType, userId, messageType, messageContent);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendToTenant(Long tenantId, Integer userType, String messageType, String messageContent) {
|
||||
TenantUtils.execute(tenantId, () -> {
|
||||
webSocketMessageSender.send(userType, messageType, messageContent);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user