[*] 日常优化
This commit is contained in:
@@ -10,7 +10,6 @@ import com.acgist.taoyao.signal.client.ClientManager;
|
||||
import com.acgist.taoyao.signal.client.ClientStatus;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientRebootProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientShutdownProtocol;
|
||||
import com.acgist.taoyao.signal.protocol.client.ClientWakeupProtocol;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.media.Content;
|
||||
@@ -31,7 +30,6 @@ import lombok.RequiredArgsConstructor;
|
||||
public class ClientController {
|
||||
|
||||
private final ClientManager clientManager;
|
||||
private final ClientWakeupProtocol clientWakeupProtocol;
|
||||
private final ClientRebootProtocol clientRebootProtocol;
|
||||
private final ClientShutdownProtocol clientShutdownProtocol;
|
||||
|
||||
@@ -49,13 +47,6 @@ public class ClientController {
|
||||
return Message.success(this.clientManager.getStatus(clientId));
|
||||
}
|
||||
|
||||
@Operation(summary = "唤醒终端", description = "唤醒终端")
|
||||
@GetMapping("/wakeup/{clientId}")
|
||||
public Message wakeup(@PathVariable String clientId) {
|
||||
this.clientWakeupProtocol.execute(clientId);
|
||||
return Message.success();
|
||||
}
|
||||
|
||||
@Operation(summary = "重启终端", description = "重启终端")
|
||||
@GetMapping("/reboot/{clientId}")
|
||||
public Message reboot(@PathVariable String clientId) {
|
||||
|
||||
@@ -38,9 +38,11 @@ public abstract class OperatorAdapter implements Operator {
|
||||
* @return 是否已经关闭
|
||||
*/
|
||||
protected boolean markClose() {
|
||||
final boolean old = this.close;
|
||||
this.close = true;
|
||||
return old;
|
||||
synchronized (this) {
|
||||
final boolean old = this.close;
|
||||
this.close = true;
|
||||
return old;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -27,41 +27,41 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
""",
|
||||
"""
|
||||
{
|
||||
"ip": "终端IP",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端ID",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
"humidity": 湿度,
|
||||
"temperature": 温度,
|
||||
"signal": 信号强度(0~100),
|
||||
"battery": 电池电量(0~100),
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"ip" : "终端IP",
|
||||
"name" : "终端名称",
|
||||
"clientId" : "终端ID",
|
||||
"clientType" : "终端类型",
|
||||
"latitude" : 纬度,
|
||||
"longitude" : 经度,
|
||||
"humidity" : 湿度,
|
||||
"temperature" : 温度,
|
||||
"signal" : 信号强度(0~100),
|
||||
"battery" : 电池电量(0~100),
|
||||
"alarming" : 是否发生告警(true|false),
|
||||
"charging" : 是否正在充电(true|false),
|
||||
"clientRecording": 是否正在录像(true|false),
|
||||
"serverRecording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
"lastHeartbeat" : "最后心跳时间",
|
||||
"status" : {更多状态},
|
||||
"config" : {更多配置}
|
||||
}
|
||||
"""
|
||||
},
|
||||
flow = "终端->信令服务->终端"
|
||||
flow = "终端=>信令服务->终端"
|
||||
)
|
||||
public class ClientStatusProtocol extends ProtocolClientAdapter {
|
||||
|
||||
public static final String SIGNAL = "client::status";
|
||||
|
||||
public ClientStatusProtocol() {
|
||||
super("终端状态信令", SIGNAL);
|
||||
}
|
||||
public static final String SIGNAL = "client::status";
|
||||
|
||||
public ClientStatusProtocol() {
|
||||
super("终端状态信令", SIGNAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String queryClientId = MapUtils.get(body, Constant.CLIENT_ID, clientId);
|
||||
message.setBody(this.clientManager.getStatus(queryClientId));
|
||||
client.push(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String queryClientId = MapUtils.get(body, Constant.CLIENT_ID, clientId);
|
||||
message.setBody(this.clientManager.getStatus(queryClientId));
|
||||
client.push(message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,16 +35,16 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
)
|
||||
public class ClientUnicastProtocol extends ProtocolClientAdapter {
|
||||
|
||||
public static final String SIGNAL = "client::unicast";
|
||||
|
||||
public ClientUnicastProtocol() {
|
||||
super("终端单播信令", SIGNAL);
|
||||
}
|
||||
public static final String SIGNAL = "client::unicast";
|
||||
|
||||
public ClientUnicastProtocol() {
|
||||
super("终端单播信令", SIGNAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String to = MapUtils.remove(body, Constant.TO);
|
||||
this.clientManager.unicast(to, message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String to = MapUtils.remove(body, Constant.TO);
|
||||
this.clientManager.unicast(to, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.acgist.taoyao.signal.protocol.client;
|
||||
|
||||
import com.acgist.taoyao.boot.annotation.Description;
|
||||
import com.acgist.taoyao.boot.annotation.Protocol;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
|
||||
/**
|
||||
* 终端唤醒信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
flow = "信令服务->终端"
|
||||
)
|
||||
public class ClientWakeupProtocol extends ProtocolClientAdapter {
|
||||
|
||||
private static final String SIGNAL = "client::wakeup";
|
||||
|
||||
public ClientWakeupProtocol() {
|
||||
super("终端唤醒信令", SIGNAL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端ID
|
||||
*/
|
||||
public void execute(String clientId) {
|
||||
this.clientManager.unicast(clientId, this.build());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,13 +19,13 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"to": "目标终端ID",
|
||||
"to" : "目标终端ID",
|
||||
"enabled": 是否响铃(true|false)
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务->终端",
|
||||
"终端->信令服务->终端"
|
||||
"信令服务=>终端",
|
||||
"终端=>信令服务->终端"
|
||||
}
|
||||
)
|
||||
public class ControlBellProtocol extends ProtocolControlAdapter implements IControlBellProtocol {
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.acgist.taoyao.signal.protocol.control;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.acgist.taoyao.boot.annotation.Description;
|
||||
import com.acgist.taoyao.boot.annotation.Protocol;
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.signal.client.Client;
|
||||
import com.acgist.taoyao.signal.client.ClientType;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
|
||||
/**
|
||||
* 终端唤醒信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"to": "目标终端ID"
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务=>终端",
|
||||
"终端=>信令服务->终端"
|
||||
}
|
||||
)
|
||||
public class ControlWakeupProtocol extends ProtocolControlAdapter implements IControlWakeupProtocol {
|
||||
|
||||
private static final String SIGNAL = "control::wakeup";
|
||||
|
||||
public ControlWakeupProtocol() {
|
||||
super("终端唤醒信令", SIGNAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Client targetClient, Message message, Map<String, Object> body) {
|
||||
client.push(targetClient.request(message));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Message execute(String clientId) {
|
||||
return this.request(clientId, this.build(Map.of()));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.acgist.taoyao.signal.protocol.control;
|
||||
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
|
||||
/**
|
||||
* 终端唤醒信令接口
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
public interface IControlWakeupProtocol {
|
||||
|
||||
/**
|
||||
* @param clientId 终端ID
|
||||
*
|
||||
* @return 执行结果
|
||||
*/
|
||||
Message execute(String clientId);
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user