mirror of https://gitee.com/stylefeng/roses
修改SocketApi消息类型枚举为字符串类型
parent
0fe4cbcd6b
commit
075fd4606d
|
@ -16,28 +16,30 @@ public interface SocketOperatorApi {
|
|||
/**
|
||||
* 发送消息到指定会话
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param msg 消息体
|
||||
* @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类
|
||||
* @param userId 用户ID
|
||||
* @param msg 消息体
|
||||
* @author majianguo
|
||||
* @date 2021/6/2 上午9:35
|
||||
**/
|
||||
void sendMsgOfUserSession(ServerMessageTypeEnum msgType, String userId, Object msg);
|
||||
void sendMsgOfUserSession(String msgType, String userId, Object msg);
|
||||
|
||||
/**
|
||||
* 发送消息到所有会话
|
||||
*
|
||||
* @param msg 消息体
|
||||
* @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类
|
||||
* @param msg 消息体
|
||||
* @author majianguo
|
||||
* @date 2021/6/2 上午9:35
|
||||
**/
|
||||
void sendMsgOfAllUserSession(ServerMessageTypeEnum msgType, Object msg);
|
||||
void sendMsgOfAllUserSession(String msgType, Object msg);
|
||||
|
||||
/**
|
||||
* 监听指定类型消息
|
||||
* <p>
|
||||
* 1.该方法每调用一次即注册一个监听,同一个消息类型多次调用只有最后一次生效
|
||||
*
|
||||
* @param msgType 消息类型
|
||||
* @param msgType 消息类型可参考{@link cn.stylefeng.roses.kernel.socket.api.enums}枚举类
|
||||
* @param callbackInterface 消息监听器
|
||||
* @author majianguo
|
||||
* @date 2021/6/2 上午9:54
|
||||
|
|
|
@ -27,7 +27,7 @@ import java.util.List;
|
|||
public class WebSocketOperator implements SocketOperatorApi {
|
||||
|
||||
@Override
|
||||
public void sendMsgOfUserSession(ServerMessageTypeEnum msgType, String userId, Object msg) {
|
||||
public void sendMsgOfUserSession(String msgType, String userId, Object msg) {
|
||||
// 根据用户ID获取会话
|
||||
SocketSession<GettySocketOperator> socketSession = SessionCenter.getSessionByUserId(userId);
|
||||
if (ObjectUtil.isEmpty(socketSession)) {
|
||||
|
@ -35,26 +35,26 @@ public class WebSocketOperator implements SocketOperatorApi {
|
|||
}
|
||||
|
||||
// 判断用户是否监听
|
||||
if (socketSession.getMessageTypes().contains(msgType.getCode())) {
|
||||
if (socketSession.getMessageTypes().contains(msgType)) {
|
||||
WebSocketMessagePOJO webSocketMessagePOJO = new WebSocketMessagePOJO();
|
||||
webSocketMessagePOJO.setData(msg);
|
||||
webSocketMessagePOJO.setType(msgType.getCode());
|
||||
webSocketMessagePOJO.setType(msgType);
|
||||
// 发送内容
|
||||
socketSession.getSocketOperatorApi().writeAndFlush(webSocketMessagePOJO);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMsgOfAllUserSession(ServerMessageTypeEnum msgType, Object msg) {
|
||||
public void sendMsgOfAllUserSession(String msgType, Object msg) {
|
||||
// 获取监听该消息类型的所有会话
|
||||
List<SocketSession<GettySocketOperator>> socketSessionList = SessionCenter.getSocketSessionByMsgType(msgType.getCode());
|
||||
List<SocketSession<GettySocketOperator>> socketSessionList = SessionCenter.getSocketSessionByMsgType(msgType);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(socketSessionList)) {
|
||||
// 给所有会话发送消息
|
||||
for (SocketSession<GettySocketOperator> socketSession : socketSessionList) {
|
||||
WebSocketMessagePOJO webSocketMessagePOJO = new WebSocketMessagePOJO();
|
||||
webSocketMessagePOJO.setData(msg);
|
||||
webSocketMessagePOJO.setType(msgType.getCode());
|
||||
webSocketMessagePOJO.setType(msgType);
|
||||
// 发送内容
|
||||
socketSession.getSocketOperatorApi().writeAndFlush(webSocketMessagePOJO);
|
||||
}
|
||||
|
|
|
@ -115,7 +115,7 @@ public class MessageDbServiceImpl implements MessageApi {
|
|||
|
||||
// 给用户发送通知
|
||||
for (Long userId : userIdSet) {
|
||||
socketOperatorApi.sendMsgOfUserSession(ServerMessageTypeEnum.SYS_NOTICE_MSG_TYPE, userId.toString(), messageSendRequest);
|
||||
socketOperatorApi.sendMsgOfUserSession(ServerMessageTypeEnum.SYS_NOTICE_MSG_TYPE.getCode(), userId.toString(), messageSendRequest);
|
||||
}
|
||||
sysMessageService.saveBatch(sendMsgList);
|
||||
|
||||
|
|
Loading…
Reference in New Issue