[+] 信令优化
This commit is contained in:
@@ -22,7 +22,7 @@ public class ProtocolControlAdapter extends ProtocolClientAdapter {
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String to = MapUtils.get(body, Constant.TO);
|
||||
final String to = MapUtils.remove(body, Constant.TO);
|
||||
final Client targetClient = this.clientManager.clients(to);
|
||||
if(targetClient == null) {
|
||||
throw MessageCodeException.of("目标终端无效:" + to);
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
}
|
||||
|
||||
@@ -21,15 +21,18 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
@Protocol
|
||||
@Description(
|
||||
memo = "没有选择终端类型时返回所有类型终端状态列表",
|
||||
body = """
|
||||
body = {
|
||||
"""
|
||||
{
|
||||
"clientType": "终端类型(可选)"
|
||||
}
|
||||
""",
|
||||
"""
|
||||
[
|
||||
{
|
||||
"ip": "终端IP",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端标识",
|
||||
"clientId": "终端ID",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
@@ -40,12 +43,14 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
},
|
||||
...
|
||||
]
|
||||
""",
|
||||
"""
|
||||
},
|
||||
flow = "终端->信令服务->终端"
|
||||
)
|
||||
public class ClientListProtocol extends ProtocolClientAdapter {
|
||||
|
||||
@@ -19,10 +19,10 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"clientId": "下线终端标识"
|
||||
}
|
||||
""",
|
||||
{
|
||||
"clientId": "下线终端ID"
|
||||
}
|
||||
""",
|
||||
flow = "终端-[终端关闭]>信令服务-)终端"
|
||||
)
|
||||
public class ClientOfflineProtocol extends ProtocolClientAdapter implements ApplicationListener<ClientOfflineEvent> {
|
||||
|
||||
@@ -17,24 +17,25 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"ip": "终端IP",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端标识",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
"humidity": 湿度,
|
||||
"temperature": 温度,
|
||||
"signal": 信号强度(0~100),
|
||||
"battery": 电池电量(0~100),
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
}
|
||||
""",
|
||||
{
|
||||
"ip": "终端IP",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端ID",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
"humidity": 湿度,
|
||||
"temperature": 温度,
|
||||
"signal": 信号强度(0~100),
|
||||
"battery": 电池电量(0~100),
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
}
|
||||
""",
|
||||
flow = "终端=[终端注册]>信令服务-)终端"
|
||||
)
|
||||
public class ClientOnlineProtocol extends ProtocolClientAdapter implements ApplicationListener<ClientOnlineEvent> {
|
||||
|
||||
@@ -23,7 +23,7 @@ public class ClientRebootProtocol extends ProtocolClientAdapter implements Contr
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端标识
|
||||
* @param clientId 终端ID
|
||||
*/
|
||||
public void execute(String clientId) {
|
||||
this.clientManager.unicast(clientId, this.build());
|
||||
|
||||
@@ -34,7 +34,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
"username": "信令用户",
|
||||
"password": "信令密码",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端标识",
|
||||
"clientId": "终端ID",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
@@ -45,6 +45,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"recording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
}
|
||||
@@ -101,7 +102,7 @@ public class ClientRegisterProtocol extends ProtocolClientAdapter {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端标识
|
||||
* @param clientId 终端ID
|
||||
* @param clientType 终端类型
|
||||
* @param client 终端
|
||||
* @param body 消息主体
|
||||
|
||||
@@ -23,7 +23,7 @@ public class ClientShutdownProtocol extends ProtocolClientAdapter implements Con
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端标识
|
||||
* @param clientId 终端ID
|
||||
*/
|
||||
public void execute(String clientId) {
|
||||
this.clientManager.unicast(clientId, this.build());
|
||||
|
||||
@@ -18,21 +18,31 @@ import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
memo = "没有指定终端ID返回请求终端状态",
|
||||
body = {
|
||||
"""
|
||||
{
|
||||
"clientId": "终端标识(可选)"
|
||||
"clientId": "终端ID(可选)"
|
||||
}
|
||||
""",
|
||||
"""
|
||||
{
|
||||
"clientId": "终端标识",
|
||||
"ip": "终端IP",
|
||||
"name": "终端名称",
|
||||
"clientId": "终端ID",
|
||||
"clientType": "终端类型",
|
||||
"latitude": 纬度,
|
||||
"longitude": 经度,
|
||||
"humidity": 湿度,
|
||||
"temperature": 温度,
|
||||
"signal": 信号强度(0~100),
|
||||
"battery": 电池电量(0~100),
|
||||
"alarming": 是否发生告警(true|false),
|
||||
"charging": 是否正在充电(true|false),
|
||||
"mediaId": "媒体服务标识",
|
||||
"lastHeartbeat": "最后心跳时间"
|
||||
"recording": 是否正在录像(true|false),
|
||||
"lastHeartbeat": "最后心跳时间",
|
||||
"status": {更多状态},
|
||||
"config": {更多配置}
|
||||
}
|
||||
"""
|
||||
},
|
||||
|
||||
@@ -2,32 +2,35 @@ package com.acgist.taoyao.signal.protocol.client;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.acgist.taoyao.boot.annotation.Description;
|
||||
import com.acgist.taoyao.boot.annotation.Protocol;
|
||||
import com.acgist.taoyao.boot.config.Constant;
|
||||
import com.acgist.taoyao.boot.model.Message;
|
||||
import com.acgist.taoyao.boot.utils.MapUtils;
|
||||
import com.acgist.taoyao.signal.client.Client;
|
||||
import com.acgist.taoyao.signal.client.ClientType;
|
||||
import com.acgist.taoyao.signal.protocol.ProtocolClientAdapter;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 终端单播信令
|
||||
*
|
||||
* @author acgist
|
||||
*/
|
||||
@Slf4j
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
body = {
|
||||
"""
|
||||
{
|
||||
"to": "接收终端标识",
|
||||
...自定义的主体
|
||||
"to": "接收终端ID",
|
||||
...
|
||||
}
|
||||
""",
|
||||
"""
|
||||
{
|
||||
...
|
||||
}
|
||||
"""
|
||||
},
|
||||
flow = "终端->信令服务->终端"
|
||||
)
|
||||
public class ClientUnicastProtocol extends ProtocolClientAdapter {
|
||||
@@ -40,12 +43,8 @@ public class ClientUnicastProtocol extends ProtocolClientAdapter {
|
||||
|
||||
@Override
|
||||
public void execute(String clientId, ClientType clientType, Client client, Message message, Map<String, Object> body) {
|
||||
final String to = (String) body.remove(Constant.TO);
|
||||
if(StringUtils.isNotEmpty(to)) {
|
||||
this.clientManager.unicast(to, message);
|
||||
} else {
|
||||
log.warn("终端单播消息没有接收终端标识:{}", to);
|
||||
}
|
||||
final String to = MapUtils.remove(body, Constant.TO);
|
||||
this.clientManager.unicast(to, message);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ public class ClientWakeupProtocol extends ProtocolClientAdapter {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端标识
|
||||
* @param clientId 终端ID
|
||||
*/
|
||||
public void execute(String clientId) {
|
||||
this.clientManager.unicast(clientId, this.build());
|
||||
|
||||
@@ -16,6 +16,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"to": "目标终端ID"
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务->终端",
|
||||
"终端->信令服务->终端"
|
||||
@@ -35,7 +40,7 @@ public class ControlBellProtocol extends ProtocolControlAdapter {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientId 终端标识
|
||||
* @param clientId 终端ID
|
||||
*/
|
||||
public void execute(String clientId) {
|
||||
this.clientManager.unicast(clientId, this.build());
|
||||
|
||||
@@ -16,6 +16,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
*/
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"to": "目标终端ID"
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务->终端",
|
||||
"终端->信令服务->终端"
|
||||
|
||||
@@ -17,10 +17,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
@Protocol
|
||||
@Description(
|
||||
body = """
|
||||
{
|
||||
"type": "PTZ类型(PAN|TILT|ZOOM)",
|
||||
"value": PTZ参数
|
||||
}
|
||||
{
|
||||
"to": "目标终端ID",
|
||||
"type": "PTZ类型(PAN|TILT|ZOOM)",
|
||||
"value": PTZ参数
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务->终端",
|
||||
|
||||
@@ -17,6 +17,11 @@ import com.acgist.taoyao.signal.protocol.ProtocolControlAdapter;
|
||||
@Protocol
|
||||
@Description(
|
||||
memo = "状态通过心跳回传",
|
||||
body = """
|
||||
{
|
||||
"to": "目标终端ID"
|
||||
}
|
||||
""",
|
||||
flow = {
|
||||
"信令服务->终端",
|
||||
"终端->信令服务->终端"
|
||||
|
||||
Reference in New Issue
Block a user