Browse Source

命令规范

master
xie.bx 3 years ago
parent
commit
3594ab3e50
  1. 4
      im-client/src/main/java/com/bx/imclient/IMClient.java
  2. 4
      im-client/src/main/java/com/bx/imclient/annotation/IMListener.java
  3. 2
      im-client/src/main/java/com/bx/imclient/listener/MessageListener.java
  4. 6
      im-client/src/main/java/com/bx/imclient/listener/MessageListenerMulticaster.java
  5. 22
      im-client/src/main/java/com/bx/imclient/sender/IMSender.java
  6. 8
      im-client/src/main/java/com/bx/imclient/task/PullSendResultGroupMessageTask.java
  7. 8
      im-client/src/main/java/com/bx/imclient/task/PullSendResultPrivateMessageTask.java
  8. 37
      im-commom/im-commom.iml
  9. 4
      im-commom/src/main/java/com/bx/imcommon/enums/IMListenerType.java
  10. 4
      im-commom/src/main/java/com/bx/imcommon/enums/IMSendStatus.java
  11. 2
      im-commom/src/main/java/com/bx/imcommon/model/GroupMessageInfo.java
  12. 2
      im-commom/src/main/java/com/bx/imcommon/model/HeartbeatInfo.java
  13. 2
      im-commom/src/main/java/com/bx/imcommon/model/IMRecvInfo.java
  14. 4
      im-commom/src/main/java/com/bx/imcommon/model/IMSendInfo.java
  15. 2
      im-commom/src/main/java/com/bx/imcommon/model/LoginInfo.java
  16. 2
      im-commom/src/main/java/com/bx/imcommon/model/PrivateMessageInfo.java
  17. 6
      im-commom/src/main/java/com/bx/imcommon/model/SendResult.java
  18. 2
      im-platform/src/main/java/com/bx/implatform/controller/GroupMessageController.java
  19. 2
      im-platform/src/main/java/com/bx/implatform/controller/PrivateMessageController.java
  20. 2
      im-platform/src/main/java/com/bx/implatform/enums/FileType.java
  21. 2
      im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java
  22. 2
      im-platform/src/main/java/com/bx/implatform/enums/MessageType.java
  23. 14
      im-platform/src/main/java/com/bx/implatform/listener/GroupMessageListener.java
  24. 16
      im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java
  25. 2
      im-platform/src/main/java/com/bx/implatform/service/IGroupMessageService.java
  26. 2
      im-platform/src/main/java/com/bx/implatform/service/IPrivateMessageService.java
  27. 8
      im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java
  28. 8
      im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java
  29. 2
      im-platform/src/main/java/com/bx/implatform/service/thirdparty/FileService.java
  30. 4
      im-server/src/main/java/com/bx/imserver/task/PullUnreadGroupMessageTask.java
  31. 4
      im-server/src/main/java/com/bx/imserver/task/PullUnreadPrivateMessageTask.java
  32. 2
      im-server/src/main/java/com/bx/imserver/util/SpringContextHolder.java
  33. 8
      im-server/src/main/java/com/bx/imserver/websocket/WebSocketHandler.java
  34. 4
      im-server/src/main/java/com/bx/imserver/websocket/endecode/MessageProtocolDecoder.java
  35. 6
      im-server/src/main/java/com/bx/imserver/websocket/endecode/MessageProtocolEncoder.java
  36. 18
      im-server/src/main/java/com/bx/imserver/websocket/processor/GroupMessageProcessor.java
  37. 6
      im-server/src/main/java/com/bx/imserver/websocket/processor/HeartbeatProcessor.java
  38. 8
      im-server/src/main/java/com/bx/imserver/websocket/processor/LoginProcessor.java
  39. 18
      im-server/src/main/java/com/bx/imserver/websocket/processor/PrivateMessageProcessor.java
  40. 2
      im-server/src/main/java/com/bx/imserver/websocket/processor/ProcessorFactory.java

4
im-client/src/main/java/com/bx/imclient/IMClient.java

@ -1,9 +1,9 @@
package com.bx.imclient;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imclient.sender.IMSender;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

4
im-client/src/main/java/com/bx/imclient/annotation/IMListener.java

@ -1,6 +1,6 @@
package com.bx.imclient.annotation;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.enums.IMListenerType;
import org.springframework.stereotype.Component;
import java.lang.annotation.ElementType;
@ -13,6 +13,6 @@ import java.lang.annotation.Target;
@Component
public @interface IMListener {
ListenerType type();
IMListenerType type();
}

2
im-client/src/main/java/com/bx/imclient/listener/MessageListener.java

@ -1,7 +1,7 @@
package com.bx.imclient.listener;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imcommon.model.SendResult;
public interface MessageListener {

6
im-client/src/main/java/com/bx/imclient/listener/MessageListenerMulticaster.java

@ -1,9 +1,9 @@
package com.bx.imclient.listener;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.annotation.IMListener;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.model.SendResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -17,7 +17,7 @@ public class MessageListenerMulticaster {
@Autowired(required = false)
private List<MessageListener> messageListeners = Collections.emptyList();
public void multicast(ListenerType type, SendResult result){
public void multicast(IMListenerType type, SendResult result){
for(MessageListener listener:messageListeners){
IMListener annotation = listener.getClass().getAnnotation(IMListener.class);
if(annotation.type().equals(type)){

22
im-client/src/main/java/com/bx/imclient/sender/IMSender.java

@ -1,14 +1,14 @@
package com.bx.imclient.sender;
import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.im.IMRecvInfo;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.enums.IMSendStatus;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.imcommon.model.IMRecvInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.imcommon.model.SendResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
@ -54,9 +54,9 @@ public class IMSender {
SendResult result = new SendResult();
result.setMessageInfo(messageInfo);
result.setRecvId(recvId);
result.setResult(SendResultType.FAIL);
result.setStatus(IMSendStatus.FAIL);
result.setFailReason("用户不在线");
listenerMulticaster.multicast(ListenerType.PRIVATE_MESSAGE, result);
listenerMulticaster.multicast(IMListenerType.PRIVATE_MESSAGE, result);
}
}
}
@ -103,9 +103,9 @@ public class IMSender {
SendResult result = new SendResult();
result.setMessageInfo(messageInfo);
result.setRecvId(id);
result.setResult(SendResultType.FAIL);
result.setStatus(IMSendStatus.FAIL);
result.setFailReason("用户不在线");
listenerMulticaster.multicast(ListenerType.GROUP_MESSAGE,result);
listenerMulticaster.multicast(IMListenerType.GROUP_MESSAGE,result);
}
}
}

8
im-client/src/main/java/com/bx/imclient/task/PullSendResultGroupMessageTask.java

@ -1,9 +1,9 @@
package com.bx.imclient.task;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.model.SendResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.core.RedisTemplate;
@ -26,7 +26,7 @@ public class PullSendResultGroupMessageTask extends AbstractPullMessageTask{
String key = RedisKey.IM_RESULT_GROUP_QUEUE;
SendResult result = (SendResult)redisTemplate.opsForList().leftPop(key,10, TimeUnit.SECONDS);
if(result != null) {
listenerMulticaster.multicast(ListenerType.GROUP_MESSAGE,result);
listenerMulticaster.multicast(IMListenerType.GROUP_MESSAGE,result);
}
}

8
im-client/src/main/java/com/bx/imclient/task/PullSendResultPrivateMessageTask.java

@ -1,9 +1,9 @@
package com.bx.imclient.task;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.listener.MessageListenerMulticaster;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.model.SendResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
@ -31,7 +31,7 @@ public class PullSendResultPrivateMessageTask extends AbstractPullMessageTask{
String key = RedisKey.IM_RESULT_PRIVATE_QUEUE;
SendResult result = (SendResult)redisTemplate.opsForList().leftPop(key,10, TimeUnit.SECONDS);
if(result != null) {
listenerMulticaster.multicast(ListenerType.PRIVATE_MESSAGE, result);
listenerMulticaster.multicast(IMListenerType.PRIVATE_MESSAGE, result);
}
}

37
im-commom/im-commom.iml

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/../im-commom/target/classes" />
<output-test url="file://$MODULE_DIR$/../im-commom/target/test-classes" />
<content url="file://$MODULE_DIR$/../im-commom">
<sourceFolder url="file://$MODULE_DIR$/../im-commom/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
<excludeFolder url="file://$MODULE_DIR$/../im-commom/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.3.9" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.40" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.10" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.6" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.6" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.9.9" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.7.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.7.RELEASE" level="project" />
</component>
</module>

4
im-commom/src/main/java/com/bx/imcommon/enums/ListenerType.java → im-commom/src/main/java/com/bx/imcommon/enums/IMListenerType.java

@ -1,6 +1,6 @@
package com.bx.imcommon.enums;
public enum ListenerType {
public enum IMListenerType {
PRIVATE_MESSAGE(0,"私聊消息"),
GROUP_MESSAGE(1,"群聊消息");
@ -9,7 +9,7 @@ public enum ListenerType {
private String desc;
ListenerType(Integer index, String desc) {
IMListenerType(Integer index, String desc) {
this.code =index;
this.desc=desc;
}

4
im-commom/src/main/java/com/bx/imcommon/enums/SendResultType.java → im-commom/src/main/java/com/bx/imcommon/enums/IMSendStatus.java

@ -1,7 +1,7 @@
package com.bx.imcommon.enums;
public enum SendResultType {
public enum IMSendStatus {
SUCCESS(0,"发送成功"),
FAIL(1,"发送失败");
@ -10,7 +10,7 @@ public enum SendResultType {
private String msg;
// 构造方法
SendResultType(int code, String msg) {
IMSendStatus(int code, String msg) {
this.code = code;
this.msg = msg;
}

2
im-commom/src/main/java/com/bx/imcommon/model/im/GroupMessageInfo.java → im-commom/src/main/java/com/bx/imcommon/model/GroupMessageInfo.java

@ -1,4 +1,4 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import com.bx.imcommon.serializer.DateToLongSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

2
im-commom/src/main/java/com/bx/imcommon/model/im/HeartbeatInfo.java → im-commom/src/main/java/com/bx/imcommon/model/HeartbeatInfo.java

@ -1,4 +1,4 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import lombok.Data;

2
im-commom/src/main/java/com/bx/imcommon/model/im/IMRecvInfo.java → im-commom/src/main/java/com/bx/imcommon/model/IMRecvInfo.java

@ -1,4 +1,4 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import lombok.Data;

4
im-commom/src/main/java/com/bx/imcommon/model/im/SendInfo.java → im-commom/src/main/java/com/bx/imcommon/model/IMSendInfo.java

@ -1,9 +1,9 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import lombok.Data;
@Data
public class SendInfo<T> {
public class IMSendInfo<T> {
private Integer cmd;
private T data;

2
im-commom/src/main/java/com/bx/imcommon/model/im/LoginInfo.java → im-commom/src/main/java/com/bx/imcommon/model/LoginInfo.java

@ -1,4 +1,4 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import lombok.Data;

2
im-commom/src/main/java/com/bx/imcommon/model/im/PrivateMessageInfo.java → im-commom/src/main/java/com/bx/imcommon/model/PrivateMessageInfo.java

@ -1,4 +1,4 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import com.bx.imcommon.serializer.DateToLongSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

6
im-commom/src/main/java/com/bx/imcommon/model/im/SendResult.java → im-commom/src/main/java/com/bx/imcommon/model/SendResult.java

@ -1,6 +1,6 @@
package com.bx.imcommon.model.im;
package com.bx.imcommon.model;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.enums.IMSendStatus;
import lombok.Data;
@Data
@ -8,7 +8,7 @@ public class SendResult<T> {
private Long recvId;
private SendResultType result;
private IMSendStatus status;
private String failReason="";

2
im-platform/src/main/java/com/bx/implatform/controller/GroupMessageController.java

@ -1,7 +1,7 @@
package com.bx.implatform.controller;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.implatform.result.Result;
import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.IGroupMessageService;

2
im-platform/src/main/java/com/bx/implatform/controller/PrivateMessageController.java

@ -1,7 +1,7 @@
package com.bx.implatform.controller;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.implatform.result.Result;
import com.bx.implatform.result.ResultUtils;
import com.bx.implatform.service.IPrivateMessageService;

2
im-commom/src/main/java/com/bx/imcommon/enums/FileType.java → im-platform/src/main/java/com/bx/implatform/enums/FileType.java

@ -1,4 +1,4 @@
package com.bx.imcommon.enums;
package com.bx.implatform.enums;
public enum FileType {

2
im-commom/src/main/java/com/bx/imcommon/enums/MessageStatus.java → im-platform/src/main/java/com/bx/implatform/enums/MessageStatus.java

@ -1,4 +1,4 @@
package com.bx.imcommon.enums;
package com.bx.implatform.enums;
public enum MessageStatus {

2
im-commom/src/main/java/com/bx/imcommon/enums/MessageType.java → im-platform/src/main/java/com/bx/implatform/enums/MessageType.java

@ -1,4 +1,4 @@
package com.bx.imcommon.enums;
package com.bx.implatform.enums;
public enum MessageType {

14
im-platform/src/main/java/com/bx/implatform/listener/GroupMessageListener.java

@ -1,20 +1,20 @@
package com.bx.implatform.listener;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.enums.MessageType;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.annotation.IMListener;
import com.bx.imclient.listener.MessageListener;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.enums.IMSendStatus;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.imcommon.model.SendResult;
import com.bx.implatform.contant.RedisKey;
import com.bx.implatform.enums.MessageType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
@Slf4j
@IMListener(type = ListenerType.GROUP_MESSAGE)
@IMListener(type = IMListenerType.GROUP_MESSAGE)
public class GroupMessageListener implements MessageListener {
@Autowired
@ -29,7 +29,7 @@ public class GroupMessageListener implements MessageListener {
}
// 保存该用户已拉取的最大消息id
if(result.getResult().equals(SendResultType.SUCCESS)) {
if(result.getStatus().equals(IMSendStatus.SUCCESS)) {
String key = RedisKey.IM_GROUP_READED_POSITION + messageInfo.getGroupId() + ":" + result.getRecvId();
redisTemplate.opsForValue().set(key, messageInfo.getId());
}

16
im-platform/src/main/java/com/bx/implatform/listener/PrivateMessageListener.java

@ -1,22 +1,22 @@
package com.bx.implatform.listener;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.bx.imcommon.enums.ListenerType;
import com.bx.imcommon.enums.MessageStatus;
import com.bx.imcommon.enums.MessageType;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imclient.annotation.IMListener;
import com.bx.imclient.listener.MessageListener;
import com.bx.imcommon.enums.IMListenerType;
import com.bx.imcommon.enums.IMSendStatus;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.imcommon.model.SendResult;
import com.bx.implatform.entity.PrivateMessage;
import com.bx.implatform.enums.MessageStatus;
import com.bx.implatform.enums.MessageType;
import com.bx.implatform.service.IPrivateMessageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@Slf4j
@IMListener(type = ListenerType.PRIVATE_MESSAGE)
@IMListener(type = IMListenerType.PRIVATE_MESSAGE)
public class PrivateMessageListener implements MessageListener {
@Autowired
@ -30,7 +30,7 @@ public class PrivateMessageListener implements MessageListener {
return;
}
// 更新消息状态
if(result.getResult().equals(SendResultType.SUCCESS)){
if(result.getStatus().equals(IMSendStatus.SUCCESS)){
UpdateWrapper<PrivateMessage> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda().eq(PrivateMessage::getId,messageInfo.getId())
.eq(PrivateMessage::getStatus, MessageStatus.UNREAD.getCode())

2
im-platform/src/main/java/com/bx/implatform/service/IGroupMessageService.java

@ -1,7 +1,7 @@
package com.bx.implatform.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.implatform.entity.GroupMessage;
import com.bx.implatform.vo.GroupMessageVO;

2
im-platform/src/main/java/com/bx/implatform/service/IPrivateMessageService.java

@ -1,7 +1,7 @@
package com.bx.implatform.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.implatform.entity.PrivateMessage;
import com.bx.implatform.vo.PrivateMessageVO;

8
im-platform/src/main/java/com/bx/implatform/service/impl/GroupMessageServiceImpl.java

@ -2,15 +2,15 @@ package com.bx.implatform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bx.imcommon.contant.Constant;
import com.bx.imcommon.enums.MessageStatus;
import com.bx.imcommon.enums.MessageType;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imclient.IMClient;
import com.bx.imcommon.contant.Constant;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.implatform.contant.RedisKey;
import com.bx.implatform.entity.Group;
import com.bx.implatform.entity.GroupMember;
import com.bx.implatform.entity.GroupMessage;
import com.bx.implatform.enums.MessageStatus;
import com.bx.implatform.enums.MessageType;
import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.exception.GlobalException;
import com.bx.implatform.mapper.GroupMessageMapper;

8
im-platform/src/main/java/com/bx/implatform/service/impl/PrivateMessageServiceImpl.java

@ -2,13 +2,13 @@ package com.bx.implatform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bx.imclient.IMClient;
import com.bx.imcommon.contant.Constant;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.MessageStatus;
import com.bx.imcommon.enums.MessageType;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imclient.IMClient;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.implatform.entity.PrivateMessage;
import com.bx.implatform.enums.MessageStatus;
import com.bx.implatform.enums.MessageType;
import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.exception.GlobalException;
import com.bx.implatform.mapper.PrivateMessageMapper;

2
im-platform/src/main/java/com/bx/implatform/service/thirdparty/FileService.java

@ -1,7 +1,7 @@
package com.bx.implatform.service.thirdparty;
import com.bx.imcommon.enums.FileType;
import com.bx.implatform.contant.Constant;
import com.bx.implatform.enums.FileType;
import com.bx.implatform.enums.ResultCode;
import com.bx.implatform.exception.GlobalException;
import com.bx.implatform.session.SessionContext;

4
im-server/src/main/java/com/bx/imserver/task/PullUnreadGroupMessageTask.java

@ -2,8 +2,8 @@ package com.bx.imserver.task;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.im.IMRecvInfo;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.imcommon.model.IMRecvInfo;
import com.bx.imserver.websocket.WebsocketServer;
import com.bx.imserver.websocket.processor.MessageProcessor;
import com.bx.imserver.websocket.processor.ProcessorFactory;

4
im-server/src/main/java/com/bx/imserver/task/PullUnreadPrivateMessageTask.java

@ -3,8 +3,8 @@ package com.bx.imserver.task;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.model.im.IMRecvInfo;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.IMRecvInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.imserver.websocket.WebsocketServer;
import com.bx.imserver.websocket.processor.MessageProcessor;
import com.bx.imserver.websocket.processor.ProcessorFactory;

2
im-commom/src/main/java/com/bx/imcommon/util/SpringContextHolder.java → im-server/src/main/java/com/bx/imserver/util/SpringContextHolder.java

@ -1,4 +1,4 @@
package com.bx.imcommon.util;
package com.bx.imserver.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;

8
im-server/src/main/java/com/bx/imserver/websocket/WebSocketHandler.java

@ -2,8 +2,8 @@ package com.bx.imserver.websocket;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.util.SpringContextHolder;
import com.bx.imcommon.model.IMSendInfo;
import com.bx.imserver.util.SpringContextHolder;
import com.bx.imserver.websocket.processor.MessageProcessor;
import com.bx.imserver.websocket.processor.ProcessorFactory;
import io.netty.channel.ChannelHandlerContext;
@ -21,7 +21,7 @@ import org.springframework.data.redis.core.RedisTemplate;
* 浏览器连接状态监控
*/
@Slf4j
public class WebSocketHandler extends SimpleChannelInboundHandler<SendInfo> {
public class WebSocketHandler extends SimpleChannelInboundHandler<IMSendInfo> {
/**
* 读取到消息后进行处理
@ -31,7 +31,7 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<SendInfo> {
* @throws Exception
*/
@Override
protected void channelRead0(ChannelHandlerContext ctx, SendInfo sendInfo) throws Exception {
protected void channelRead0(ChannelHandlerContext ctx, IMSendInfo sendInfo) throws Exception {
// 创建处理器进行处理
MessageProcessor processor = ProcessorFactory.createProcessor(IMCmdType.fromCode(sendInfo.getCmd()));
processor.process(ctx,processor.transForm(sendInfo.getData()));

4
im-server/src/main/java/com/bx/imserver/websocket/endecode/MessageProtocolDecoder.java

@ -1,6 +1,6 @@
package com.bx.imserver.websocket.endecode;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder;
@ -13,7 +13,7 @@ public class MessageProtocolDecoder extends MessageToMessageDecoder<TextWebSocke
@Override
protected void decode(ChannelHandlerContext channelHandlerContext, TextWebSocketFrame textWebSocketFrame, List<Object> list) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
SendInfo sendInfo = objectMapper.readValue(textWebSocketFrame.text(), SendInfo.class);
IMSendInfo sendInfo = objectMapper.readValue(textWebSocketFrame.text(), IMSendInfo.class);
list.add(sendInfo);
}
}

6
im-server/src/main/java/com/bx/imserver/websocket/endecode/MessageProtocolEncoder.java

@ -1,6 +1,6 @@
package com.bx.imserver.websocket.endecode;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;
@ -8,10 +8,10 @@ import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
import java.util.List;
public class MessageProtocolEncoder extends MessageToMessageEncoder<SendInfo> {
public class MessageProtocolEncoder extends MessageToMessageEncoder<IMSendInfo> {
@Override
protected void encode(ChannelHandlerContext channelHandlerContext, SendInfo sendInfo, List<Object> list) throws Exception {
protected void encode(ChannelHandlerContext channelHandlerContext, IMSendInfo sendInfo, List<Object> list) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
String text = objectMapper.writeValueAsString(sendInfo);

18
im-server/src/main/java/com/bx/imserver/websocket/processor/GroupMessageProcessor.java

@ -2,11 +2,11 @@ package com.bx.imserver.websocket.processor;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.model.im.GroupMessageInfo;
import com.bx.imcommon.model.im.IMRecvInfo;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imcommon.enums.IMSendStatus;
import com.bx.imcommon.model.GroupMessageInfo;
import com.bx.imcommon.model.IMRecvInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.bx.imcommon.model.SendResult;
import com.bx.imserver.websocket.WebsocketChannelCtxHolder;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
@ -37,7 +37,7 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
// 自己发的消息不用推送
if(recvId != messageInfo.getSendId()){
// 推送消息到用户
SendInfo sendInfo = new SendInfo();
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.GROUP_MESSAGE.getCode());
sendInfo.setData(messageInfo);
channelCtx.channel().writeAndFlush(sendInfo);
@ -45,7 +45,7 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
String key = RedisKey.IM_RESULT_GROUP_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.SUCCESS);
sendResult.setStatus(IMSendStatus.SUCCESS);
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);
}
@ -54,7 +54,7 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
String key = RedisKey.IM_RESULT_GROUP_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.FAIL);
sendResult.setStatus(IMSendStatus.FAIL);
sendResult.setFailReason("未找到WS连接");
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);
@ -65,7 +65,7 @@ public class GroupMessageProcessor extends MessageProcessor<IMRecvInfo<GroupMes
String key = RedisKey.IM_RESULT_GROUP_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.FAIL);
sendResult.setStatus(IMSendStatus.FAIL);
sendResult.setFailReason("未知异常");
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);

6
im-server/src/main/java/com/bx/imserver/websocket/processor/HeartbeatProcessor.java

@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import com.bx.imcommon.contant.Constant;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.model.im.HeartbeatInfo;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.HeartbeatInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.bx.imserver.websocket.WebsocketServer;
import io.netty.channel.ChannelHandlerContext;
import io.netty.util.AttributeKey;
@ -31,7 +31,7 @@ public class HeartbeatProcessor extends MessageProcessor<HeartbeatInfo> {
@Override
public void process(ChannelHandlerContext ctx, HeartbeatInfo beatInfo) {
// 响应ws
SendInfo sendInfo = new SendInfo();
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.HEART_BEAT.getCode());
ctx.channel().writeAndFlush(sendInfo);

8
im-server/src/main/java/com/bx/imserver/websocket/processor/LoginProcessor.java

@ -4,8 +4,8 @@ import cn.hutool.core.bean.BeanUtil;
import com.bx.imcommon.contant.Constant;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.model.im.LoginInfo;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.bx.imcommon.model.LoginInfo;
import com.bx.imserver.websocket.WebsocketChannelCtxHolder;
import com.bx.imserver.websocket.WebsocketServer;
import io.netty.channel.ChannelHandlerContext;
@ -35,7 +35,7 @@ public class LoginProcessor extends MessageProcessor<LoginInfo> {
ChannelHandlerContext context = WebsocketChannelCtxHolder.getChannelCtx(loginInfo.getUserId());
if(context != null){
// 不允许多地登录,强制下线
SendInfo sendInfo = new SendInfo();
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.FORCE_LOGUT.getCode());
context.channel().writeAndFlush(sendInfo);
}
@ -51,7 +51,7 @@ public class LoginProcessor extends MessageProcessor<LoginInfo> {
String key = RedisKey.IM_USER_SERVER_ID+loginInfo.getUserId();
redisTemplate.opsForValue().set(key, WSServer.getServerId(), Constant.ONLINE_TIMEOUT_SECOND, TimeUnit.SECONDS);
// 响应ws
SendInfo sendInfo = new SendInfo();
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.LOGIN.getCode());
ctx.channel().writeAndFlush(sendInfo);
}

18
im-server/src/main/java/com/bx/imserver/websocket/processor/PrivateMessageProcessor.java

@ -2,11 +2,11 @@ package com.bx.imserver.websocket.processor;
import com.bx.imcommon.contant.RedisKey;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.enums.SendResultType;
import com.bx.imcommon.model.im.IMRecvInfo;
import com.bx.imcommon.model.im.PrivateMessageInfo;
import com.bx.imcommon.model.im.SendInfo;
import com.bx.imcommon.model.im.SendResult;
import com.bx.imcommon.enums.IMSendStatus;
import com.bx.imcommon.model.IMRecvInfo;
import com.bx.imcommon.model.IMSendInfo;
import com.bx.imcommon.model.PrivateMessageInfo;
import com.bx.imcommon.model.SendResult;
import com.bx.imserver.websocket.WebsocketChannelCtxHolder;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
@ -30,7 +30,7 @@ public class PrivateMessageProcessor extends MessageProcessor<IMRecvInfo<Privat
ChannelHandlerContext channelCtx = WebsocketChannelCtxHolder.getChannelCtx(recvId);
if(channelCtx != null ){
// 推送消息到用户
SendInfo sendInfo = new SendInfo();
IMSendInfo sendInfo = new IMSendInfo();
sendInfo.setCmd(IMCmdType.PRIVATE_MESSAGE.getCode());
sendInfo.setData(messageInfo);
channelCtx.channel().writeAndFlush(sendInfo);
@ -38,7 +38,7 @@ public class PrivateMessageProcessor extends MessageProcessor<IMRecvInfo<Privat
String key = RedisKey.IM_RESULT_PRIVATE_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.SUCCESS);
sendResult.setStatus(IMSendStatus.SUCCESS);
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);
}else{
@ -46,7 +46,7 @@ public class PrivateMessageProcessor extends MessageProcessor<IMRecvInfo<Privat
String key = RedisKey.IM_RESULT_PRIVATE_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.FAIL);
sendResult.setStatus(IMSendStatus.FAIL);
sendResult.setFailReason("未找到WS连接");
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);
@ -57,7 +57,7 @@ public class PrivateMessageProcessor extends MessageProcessor<IMRecvInfo<Privat
String key = RedisKey.IM_RESULT_PRIVATE_QUEUE;
SendResult sendResult = new SendResult();
sendResult.setRecvId(recvId);
sendResult.setResult(SendResultType.FAIL);
sendResult.setStatus(IMSendStatus.FAIL);
sendResult.setFailReason("未知异常");
sendResult.setMessageInfo(messageInfo);
redisTemplate.opsForList().rightPush(key,sendResult);

2
im-server/src/main/java/com/bx/imserver/websocket/processor/ProcessorFactory.java

@ -1,7 +1,7 @@
package com.bx.imserver.websocket.processor;
import com.bx.imcommon.enums.IMCmdType;
import com.bx.imcommon.util.SpringContextHolder;
import com.bx.imserver.util.SpringContextHolder;
public class ProcessorFactory {

Loading…
Cancel
Save