[+] 创建会议
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
/**
|
||||
* 最后心跳时间
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)) {
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.meeting;
|
||||
|
||||
public class MeetingRegisterProtocol {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user