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 int gatewayId,
|
||||||
required String FromPeerId,
|
required String FromPeerId,
|
||||||
required String ToPeerId,
|
required String ToPeerId,
|
||||||
@ -103,6 +103,28 @@ class MessageCommand {
|
|||||||
return _hexToBytes(serializedBytesString);
|
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进制字符串转换为字节列表
|
// 辅助方法:将16进制字符串转换为字节列表
|
||||||
static List<int> _hexToBytes(String hex) {
|
static List<int> _hexToBytes(String hex) {
|
||||||
final bytes = <int>[];
|
final bytes = <int>[];
|
||||||
|
|||||||
@ -9,12 +9,13 @@ import 'package:star_lock/talk/startChart/proto/generic.pb.dart';
|
|||||||
|
|
||||||
import '../../start_chart_manage.dart';
|
import '../../start_chart_manage.dart';
|
||||||
|
|
||||||
class UdpCallRequestHandler extends ScpMessageBaseHandle implements ScpMessageHandler {
|
class UdpCallRequestHandler extends ScpMessageBaseHandle
|
||||||
|
implements ScpMessageHandler {
|
||||||
@override
|
@override
|
||||||
void handle(ScpMessage scpMessage) {
|
void handle(ScpMessage scpMessage) {
|
||||||
final GenericResp genericResp = scpMessage.Payload;
|
final GenericResp genericResp = scpMessage.Payload;
|
||||||
if (checkGenericRespSuccess(genericResp)) {
|
if (checkGenericRespSuccess(genericResp)) {
|
||||||
// TODO 收到呼叫请求,跳转到接听页面
|
// 收到呼叫请求,跳转到接听页面
|
||||||
Get.toNamed(
|
Get.toNamed(
|
||||||
Routers.lockMonitoringPage,
|
Routers.lockMonitoringPage,
|
||||||
arguments: <String, String>{'lockId': '111'},
|
arguments: <String, String>{'lockId': '111'},
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class UdpTalkAcceptHandler extends ScpMessageBaseHandle
|
|||||||
final GenericResp genericResp = scpMessage.Payload;
|
final GenericResp genericResp = scpMessage.Payload;
|
||||||
if (checkGenericRespSuccess(genericResp)) {
|
if (checkGenericRespSuccess(genericResp)) {
|
||||||
// TODO 同意接听
|
// TODO 同意接听
|
||||||
|
// TODO 启动发送通话保持
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class UdpTalkPingHandler extends ScpMessageBaseHandle
|
|||||||
final GenericResp genericResp = scpMessage.Payload;
|
final GenericResp genericResp = scpMessage.Payload;
|
||||||
if (checkGenericRespSuccess(genericResp)) {
|
if (checkGenericRespSuccess(genericResp)) {
|
||||||
// TODO 呼叫保持
|
// TODO 呼叫保持
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -202,17 +202,23 @@ class StartChartManage {
|
|||||||
// 发送网关初始化消息
|
// 发送网关初始化消息
|
||||||
void sendGatewayResetMessage(
|
void sendGatewayResetMessage(
|
||||||
{required String ToPeerId, required int gatewayId}) async {
|
{required String ToPeerId, required int gatewayId}) async {
|
||||||
final message = MessageCommand.gatewayReset(
|
final message = MessageCommand.gatewayResetMessage(
|
||||||
ToPeerId: ToPeerId,
|
ToPeerId: ToPeerId,
|
||||||
FromPeerId: FromPeerId,
|
FromPeerId: FromPeerId,
|
||||||
gatewayId: gatewayId,
|
gatewayId: gatewayId,
|
||||||
time: DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
time: DateTime.now().millisecondsSinceEpoch ~/ 1000,
|
||||||
);
|
);
|
||||||
await _sendMessage(message: message);
|
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