fix:调整udp返回数据为工厂模式处理
This commit is contained in:
parent
9847b572b3
commit
3e25831132
@ -73,7 +73,7 @@ class MessageCommand {
|
||||
}
|
||||
|
||||
// 网关初始化
|
||||
static List<int> gatewayReset({
|
||||
static List<int> gatewayResetMessage({
|
||||
required int gatewayId,
|
||||
required String FromPeerId,
|
||||
required String ToPeerId,
|
||||
@ -103,6 +103,28 @@ class MessageCommand {
|
||||
return _hexToBytes(serializedBytesString);
|
||||
}
|
||||
|
||||
// 通话保持消息
|
||||
static List<int> talkPingMessage({
|
||||
required String FromPeerId,
|
||||
required String ToPeerId,
|
||||
}) {
|
||||
ScpMessage message = ScpMessage(
|
||||
ProtocolFlag: ProtocolFlagConstant.scp01,
|
||||
MessageType: MessageTypeConstant.Req,
|
||||
MessageId: 1,
|
||||
SpTotal: 0,
|
||||
SpIndex: 0,
|
||||
FromPeerId: FromPeerId,
|
||||
ToPeerId: ToPeerId,
|
||||
Payload: 'hello',
|
||||
PayloadCRC: 55230,
|
||||
PayloadLength: 5,
|
||||
PayloadType: PayloadTypeConstant.talkPing,
|
||||
);
|
||||
String serializedBytesString = message.serialize();
|
||||
return _hexToBytes(serializedBytesString);
|
||||
}
|
||||
|
||||
// 辅助方法:将16进制字符串转换为字节列表
|
||||
static List<int> _hexToBytes(String hex) {
|
||||
final bytes = <int>[];
|
||||
|
||||
@ -9,12 +9,13 @@ import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
||||
|
||||
import '../../start_chart_manage.dart';
|
||||
|
||||
class UdpCallRequestHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
||||
class UdpCallRequestHandler extends ScpMessageBaseHandle
|
||||
implements ScpMessageHandler {
|
||||
@override
|
||||
void handle(ScpMessage scpMessage) {
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 收到呼叫请求,跳转到接听页面
|
||||
// 收到呼叫请求,跳转到接听页面
|
||||
Get.toNamed(
|
||||
Routers.lockMonitoringPage,
|
||||
arguments: <String, String>{'lockId': '111'},
|
||||
|
||||
@ -15,6 +15,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 同意接听
|
||||
// TODO 启动发送通话保持
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ class UdpTalkPingHandler extends ScpMessageBaseHandle
|
||||
final GenericResp genericResp = scpMessage.Payload;
|
||||
if (checkGenericRespSuccess(genericResp)) {
|
||||
// TODO 呼叫保持
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -202,17 +202,23 @@ class StartChartManage {
|
||||
// 发送网关初始化消息
|
||||
void sendGatewayResetMessage(
|
||||
{required String ToPeerId, required int gatewayId}) async {
|
||||
final message = MessageCommand.gatewayReset(
|
||||
final message = MessageCommand.gatewayResetMessage(
|
||||
ToPeerId: ToPeerId,
|
||||
FromPeerId: FromPeerId,
|
||||
gatewayId: gatewayId,
|
||||
time: DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||
);
|
||||
await _sendMessage(message: message);
|
||||
Get.toNamed(
|
||||
Routers.lockMonitoringPage,
|
||||
arguments: <String, String>{'lockId': '111'},
|
||||
}
|
||||
|
||||
// 发送通话保持消息
|
||||
void sendTalkPingMessage(
|
||||
{required String ToPeerId, required int gatewayId}) async {
|
||||
final message = MessageCommand.talkPingMessage(
|
||||
ToPeerId: ToPeerId,
|
||||
FromPeerId: FromPeerId,
|
||||
);
|
||||
await _sendMessage(message: message);
|
||||
}
|
||||
|
||||
// 重新上线
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user