新增:增加公共webscoket模块
This commit is contained in:
25
common/src/main/java/com/sdm/common/common/WsMessage.java
Normal file
25
common/src/main/java/com/sdm/common/common/WsMessage.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package com.sdm.common.common;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
// 公共websocke消息实体类
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class WsMessage<T> {
|
||||
|
||||
// 场景:定义在 WsSceneEnum 维护,前端根据这个字段处理业务
|
||||
private String scene;
|
||||
|
||||
// 单一推送:接收者的用户id; 群发推送:发送人的推送id
|
||||
private Long userId;
|
||||
|
||||
// 推送的时间戳
|
||||
private Long timestamp;
|
||||
|
||||
// 推送的数据
|
||||
private T data;
|
||||
|
||||
}
|
||||
22
common/src/main/java/com/sdm/common/common/WsSceneEnum.java
Normal file
22
common/src/main/java/com/sdm/common/common/WsSceneEnum.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.sdm.common.common;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum WsSceneEnum {
|
||||
|
||||
BIG_FILE_CHUNK("BIG_FILE_CHUNK","大文件分片上传结果通知" );
|
||||
|
||||
/**
|
||||
* scene webscoket 推送的业务场景
|
||||
*/
|
||||
private final String scene;
|
||||
|
||||
/**
|
||||
* scene webscoket 推送的业务场景名称
|
||||
*/
|
||||
private final String sceneName ;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.sdm.common.feign.impl.system;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.WsMessage;
|
||||
import com.sdm.common.feign.inter.system.IWsPushToolFeignClient;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class WsPushToolFeignClientImpl implements IWsPushToolFeignClient {
|
||||
|
||||
@Autowired
|
||||
private IWsPushToolFeignClient wsPushToolFeignClient;
|
||||
|
||||
@Override
|
||||
public SdmResponse wsPushOne(WsMessage wsMessage) {
|
||||
SdmResponse sdmResponse;
|
||||
try {
|
||||
sdmResponse = wsPushToolFeignClient.wsPushOne(wsMessage);
|
||||
if (!sdmResponse.isSuccess() ){
|
||||
return SdmResponse.failed("推送单一用户失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("推送单一用户失败", e);
|
||||
return SdmResponse.failed("推送单一用户失败");
|
||||
}
|
||||
return sdmResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse wsPushAll(WsMessage wsMessage) {
|
||||
SdmResponse sdmResponse;
|
||||
try {
|
||||
sdmResponse = wsPushToolFeignClient.wsPushAll(wsMessage);
|
||||
if (!sdmResponse.isSuccess() ){
|
||||
return SdmResponse.failed("推送全量用户失败");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("推送全量用户失败", e);
|
||||
return SdmResponse.failed("推送全量用户失败");
|
||||
}
|
||||
return sdmResponse;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.sdm.common.feign.inter.system;
|
||||
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.common.WsMessage;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@FeignClient(name = "system",contextId = "IWsPushToolFeignClient")
|
||||
public interface IWsPushToolFeignClient {
|
||||
|
||||
@PostMapping("/inWs/wsPushOne")
|
||||
SdmResponse wsPushOne(@RequestBody WsMessage wsMessage);
|
||||
|
||||
@PostMapping("/inWs/wsPushAll")
|
||||
SdmResponse wsPushAll( @RequestBody WsMessage wsMessage);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user