[+] 创建会议

This commit is contained in:
acgist
2022-11-18 22:26:35 +08:00
parent e803d14505
commit 7b5e41ff5a
21 changed files with 204 additions and 262 deletions

View File

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import com.acgist.taoyao.boot.config.TaoyaoProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.event.client.CloseEvent;
import com.acgist.taoyao.signal.event.client.ClientCloseEvent;
import lombok.extern.slf4j.Slf4j;
@@ -152,7 +152,7 @@ public class ClientSessionManager {
// 移除管理
this.sessions.remove(session);
// 关闭事件
this.context.publishEvent(new CloseEvent(null, session));
this.context.publishEvent(new ClientCloseEvent(null, session));
}
}
}

View File

@@ -4,6 +4,7 @@ import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@@ -14,27 +15,33 @@ import lombok.Setter;
*/
@Getter
@Setter
@Schema(title = "终端状态", description = "终端状态")
public class ClientSessionStatus {
/**
* 终端标识
*/
@Schema(title = "终端标识", description = "终端标识")
private String sn;
/**
* IP
*/
@Schema(title = "IP", description = "IP")
private String ip;
/**
* MAC
*/
@Schema(title = "MAC", description = "MAC")
private String mac;
/**
* 信号强度0~100
*/
@Schema(title = "信号强度0~100", description = "信号强度0~100")
private Integer signal = 0;
/**
* 电量0~100
*/
@Schema(title = "电量0~100", description = "电量0~100")
private Integer battery = 0;
/**
* 最后心跳时间

View File

@@ -8,17 +8,17 @@ import lombok.Getter;
import lombok.Setter;
/**
* 关闭事件
* 终端关闭事件
*
* @author acgist
*/
@Getter
@Setter
public class CloseEvent extends ApplicationEventAdapter {
public class ClientCloseEvent extends ApplicationEventAdapter {
private static final long serialVersionUID = 1L;
public CloseEvent(Message message, ClientSession session) {
public ClientCloseEvent(Message message, ClientSession session) {
super(message, session);
}

View File

@@ -10,17 +10,17 @@ import lombok.Getter;
import lombok.Setter;
/**
* 注册事件
* 终端注册事件
*
* @author acgist
*/
@Getter
@Setter
public class RegisterEvent extends ApplicationEventAdapter {
public class ClientRegisterEvent extends ApplicationEventAdapter {
private static final long serialVersionUID = 1L;
public RegisterEvent(Map<?, ?> body, Message message, ClientSession session) {
public ClientRegisterEvent(Map<?, ?> body, Message message, ClientSession session) {
super(body, message, session);
}

View File

@@ -0,0 +1,22 @@
package com.acgist.taoyao.signal.event.meeting;
import java.util.Map;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.ApplicationEventAdapter;
/**
* 创建会议事件
*
* @author acgist
*/
public class MeetingCreateEvent extends ApplicationEventAdapter {
private static final long serialVersionUID = 1L;
public MeetingCreateEvent(Map<?, ?> body, Message message, ClientSession session) {
super(body, message, session);
}
}

View File

@@ -8,26 +8,26 @@ import org.springframework.stereotype.Component;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.client.CloseEvent;
import com.acgist.taoyao.signal.event.client.ClientCloseEvent;
import com.acgist.taoyao.signal.listener.ApplicationListenerAdapter;
import com.acgist.taoyao.signal.protocol.client.ClientOfflineProtocol;
import lombok.extern.slf4j.Slf4j;
/**
* 关闭监听
* 终端关闭监听
*
* @author acgist
*/
@Slf4j
@Component
public class CloseListener extends ApplicationListenerAdapter<CloseEvent> {
public class ClientCloseListener extends ApplicationListenerAdapter<ClientCloseEvent> {
@Autowired
private ClientOfflineProtocol offlineProtocol;
@Override
public void onApplicationEvent(CloseEvent event) {
public void onApplicationEvent(ClientCloseEvent event) {
final ClientSession session = event.getSession();
final String sn = session.sn();
if(StringUtils.isEmpty(sn)) {

View File

@@ -8,18 +8,18 @@ import org.springframework.stereotype.Component;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.client.ClientSessionStatus;
import com.acgist.taoyao.signal.event.client.RegisterEvent;
import com.acgist.taoyao.signal.event.client.ClientRegisterEvent;
import com.acgist.taoyao.signal.listener.ApplicationListenerAdapter;
import com.acgist.taoyao.signal.protocol.client.ClientConfigProtocol;
import com.acgist.taoyao.signal.protocol.client.ClientOnlineProtocol;
/**
* 注册监听
* 终端注册监听
*
* @author acgist
*/
@Component
public class RegisterListener extends ApplicationListenerAdapter<RegisterEvent> {
public class ClientRegisterListener extends ApplicationListenerAdapter<ClientRegisterEvent> {
@Autowired
private ClientConfigProtocol configProtocol;
@@ -28,7 +28,7 @@ public class RegisterListener extends ApplicationListenerAdapter<RegisterEvent>
@Async
@Override
public void onApplicationEvent(RegisterEvent event) {
public void onApplicationEvent(ClientRegisterEvent event) {
final ClientSession session = event.getSession();
if (!session.authorized()) {
return;

View File

@@ -22,6 +22,8 @@ public abstract class ProtocolMapAdapter extends ProtocolAdapter {
final Object body = message.getBody();
if(body instanceof Map<?, ?> map) {
this.execute(sn, map, message, session);
} else if(body == null) {
this.execute(sn, Map.of(), message, session);
} else {
throw MessageCodeException.of("信令主体类型错误:" + message);
}

View File

@@ -9,7 +9,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
import lombok.extern.slf4j.Slf4j;
/**
* 关闭信令
* 终端关闭信令
*
* @author acgist
*/
@@ -20,7 +20,7 @@ public class ClientCloseProtocol extends ProtocolAdapter {
public static final Integer PID = 2001;
public ClientCloseProtocol() {
super(PID, "关闭信令");
super(PID, "终端关闭信令");
}
@Override

View File

@@ -7,7 +7,7 @@ import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.protocol.ProtocolAdapter;
/**
* 上线信令
* 终端上线信令
*
* @author acgist
*/
@@ -17,7 +17,7 @@ public class ClientOnlineProtocol extends ProtocolAdapter {
public static final Integer PID = 2002;
public ClientOnlineProtocol() {
super(PID, "上线信令");
super(PID, "终端上线信令");
}
@Override

View File

@@ -10,11 +10,11 @@ import com.acgist.taoyao.boot.config.SecurityProperties;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.boot.model.MessageCode;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.client.RegisterEvent;
import com.acgist.taoyao.signal.event.client.ClientRegisterEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* 注册信令
* 终端注册信令
*
* @author acgist
*/
@@ -27,7 +27,7 @@ public class ClientRegisterProtocol extends ProtocolMapAdapter {
private SecurityProperties securityProperties;
public ClientRegisterProtocol() {
super(PID, "注册信令");
super(PID, "终端注册信令");
}
@Override
@@ -48,7 +48,7 @@ public class ClientRegisterProtocol extends ProtocolMapAdapter {
// 推送消息
session.push(message.cloneWidthoutBody());
// 发送事件
this.publishEvent(new RegisterEvent(body, message, session));
this.publishEvent(new ClientRegisterEvent(body, message, session));
}
}

View File

@@ -0,0 +1,31 @@
package com.acgist.taoyao.signal.protocol.meeting;
import java.util.Map;
import org.springframework.stereotype.Component;
import com.acgist.taoyao.boot.model.Message;
import com.acgist.taoyao.signal.client.ClientSession;
import com.acgist.taoyao.signal.event.meeting.MeetingCreateEvent;
import com.acgist.taoyao.signal.protocol.ProtocolMapAdapter;
/**
* 创建会议信令
*
* @author acgist
*/
@Component
public class MeetingCreateProtocol extends ProtocolMapAdapter {
public static final Integer PID = 4000;
public MeetingCreateProtocol() {
super(PID, "创建会议信令");
}
@Override
public void execute(String sn, Map<?, ?> body, Message message, ClientSession session) {
this.publishEvent(new MeetingCreateEvent(body, message, session));
}
}

View File

@@ -1,5 +0,0 @@
package com.acgist.taoyao.signal.protocol.meeting;
public class MeetingRegisterProtocol {
}