websocket 整合

This commit is contained in:
张良(004796)
2023-12-29 18:17:27 +08:00
parent 3888da346c
commit 0ee961e550
46 changed files with 366 additions and 223 deletions

View File

@@ -0,0 +1,27 @@
package com.ruoyi.cai.ws.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 消息的dto
*
* @author zendwang
*/
@Data
public class WebSocketMessageDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 需要推送到的session key 列表
*/
private List<Long> sessionKeys;
/**
* 需要发送的消息
*/
private String message;
}

View File

@@ -0,0 +1,109 @@
package com.ruoyi.cai.ws.dto;
import com.ruoyi.common.constant.HttpStatus;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 响应信息主体
*
* @author Lion Li
*/
@Data
@NoArgsConstructor
public class WsR<T> implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 成功
*/
public static final int SUCCESS = 200;
/**
* 失败
*/
public static final int FAIL = 500;
private int code;
private String method;
private String msg;
private T data;
public static <T> WsR<T> ok() {
return restResult(null, SUCCESS, "操作成功");
}
public static <T> WsR<T> ok(T data) {
return restResult(data, SUCCESS, "操作成功");
}
public static <T> WsR<T> ok(String msg) {
return restResult(null, SUCCESS, msg);
}
public static <T> WsR<T> ok(String msg, T data) {
return restResult(data, SUCCESS, msg);
}
public static <T> WsR<T> fail() {
return restResult(null, FAIL, "操作失败");
}
public static <T> WsR<T> fail(String msg) {
return restResult(null, FAIL, msg);
}
public static <T> WsR<T> fail(T data) {
return restResult(data, FAIL, "操作失败");
}
public static <T> WsR<T> fail(String msg, T data) {
return restResult(data, FAIL, msg);
}
public static <T> WsR<T> fail(int code, String msg) {
return restResult(null, code, msg);
}
/**
* 返回警告消息
*
* @param msg 返回内容
* @return 警告消息
*/
public static <T> WsR<T> warn(String msg) {
return restResult(null, HttpStatus.WARN, msg);
}
/**
* 返回警告消息
*
* @param msg 返回内容
* @param data 数据对象
* @return 警告消息
*/
public static <T> WsR<T> warn(String msg, T data) {
return restResult(data, HttpStatus.WARN, msg);
}
private static <T> WsR<T> restResult(T data, int code, String msg) {
WsR<T> r = new WsR<>();
r.setCode(code);
r.setData(data);
r.setMsg(msg);
return r;
}
public static <T> Boolean isError(WsR<T> ret) {
return !isSuccess(ret);
}
public static <T> Boolean isSuccess(WsR<T> ret) {
return WsR.SUCCESS == ret.getCode();
}
}

View File

@@ -0,0 +1,130 @@
package com.ruoyi.cai.ws.dto;
import com.alibaba.fastjson.JSON;
import com.ruoyi.cai.domain.CaiGift;
import java.util.HashMap;
import java.util.Map;
public class WsRMsgGen {
public static WsR response(Long roomId){
Map<String,Object> map = new HashMap<>();
map.put("roomid",roomId);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("response");
ok.setMsg("连线成功");
return ok;
}
public static WsR startVideo(Long roomId,Long duration){
Map<String,Object> map = new HashMap<>();
map.put("roomid",roomId);
map.put("duration",duration);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("startVideo");
ok.setMsg("通话成功!");
return ok;
}
public static WsR sysNotice(String content){
Map<String,Object> map = new HashMap<>();
map.put("type",1);
map.put("content",content);
map.put("linkType",0);
map.put("linkUrl",null);
map.put("fromUid",null);
map.put("toUid",null);
map.put("cancalltime",null);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("notice");
ok.setMsg("提示!");
return ok;
}
public static WsR updateTip() {
Map<String,Object> map = new HashMap<>();
map.put("tip","等待对方响应...");
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("updatetip");
ok.setMsg("提示!");
return ok;
}
public static WsR hangup(String message, Long roomId, Integer hangUpType) {
Map<String,Object> map = new HashMap<>();
map.put("roomid","roomId");
map.put("type","hangUpType");
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("hangup");
ok.setMsg(message);
return ok;
}
public static WsR canCallTime(long time) {
Map<String,Object> map = new HashMap<>();
map.put("tip",time);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("cancalltime");
ok.setMsg("提示!");
return ok;
}
public static WsR rechargeNotice(String content) {
Map<String,Object> map = new HashMap<>();
map.put("type",1);
map.put("content",content);
map.put("linkType",2);
map.put("linkUrl","rechargeCoin");
map.put("fromUid",null);
map.put("toUid",null);
map.put("cancalltime",null);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("notice");
ok.setMsg("提示!");
return ok;
}
public static WsR gift(CaiGift gift, Long callerId, Long receiverId) {
Map<String,Object> content = new HashMap<>();
content.put("giftid",gift.getId());
content.put("giftname",gift.getName());
content.put("gifticon",gift.getImg());
content.put("giftsvga",gift.getSvga());
Map<String,Object> map = new HashMap<>();
map.put("type",3);
map.put("content", JSON.toJSONString(content));
map.put("linkType",null);
map.put("linkUrl",null);
map.put("fromUid",callerId);
map.put("toUid",receiverId);
map.put("cancalltime",null);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("notice");
ok.setMsg("提示!");
return ok;
}
public static WsR heartbeat() {
Map<String,Object> content = new HashMap<>();
WsR<Map<String, Object>> ok = WsR.ok(content);
ok.setMethod("heartbeat");
ok.setMsg("检测成功!");
return ok;
}
public static WsR chatData(String txt, Long from, Long to) {
Map<String,Object> map = new HashMap<>();
map.put("type",2);
map.put("content", txt);
map.put("linkType",null);
map.put("linkUrl",null);
map.put("fromUid",from);
map.put("toUid",to);
map.put("cancalltime",null);
WsR<Map<String, Object>> ok = WsR.ok(map);
ok.setMethod("notice");
ok.setMsg("提示!");
return ok;
}
}