魏少阳 5f9e061ee3 Merge branch 'talk_flutter' of gitee.com:starlock-cn/app-starlock into talk_flutter
# Conflicts:
#	star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_page.dart
#	star_lock/lib/main/lockDetail/monitoring/monitoring/lockMonitoring_state.dart
#	star_lock/lib/talk/udp/udp_help.dart
#	star_lock/lib/talk/udp/udp_talkClass.dart
#	star_lock/lib/tools/eventBusEventManage.dart
2023-12-21 10:32:10 +08:00

158 lines
3.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'dart:async';
import 'dart:io';
import 'package:get/get.dart';
import '../../network/api_repository.dart';
import '../../tools/storage.dart';
import 'udp_manage.dart';
import 'udp_senderManage.dart';
class UdpHelp {
Timer? timer;
openUDP() async {
// 从服务器获取ip跟端口
var entity = await ApiRepository.to.getWifiLockServiceIpAndPort();
if (entity.errorCode! == 0) {
UDPManage();
// UDPManage().initUdp();
UDPManage().port = int.parse(entity.data!.serviceList![0].port!);
var serversList = <int>[];
for (int i = 0; i < entity.data!.serviceList!.length; i++) {
var item = entity.data!.serviceList![i];
if (item.serviceIp!.contains("192")) {
UDPManage().host = entity.data!.serviceList![0].serviceIp!;
var itemList = item.serviceIp!.split(".");
for (var element in itemList) {
serversList.add(int.parse(element));
}
} else {
List<InternetAddress> addresses =
await InternetAddress.lookup(item.serviceIp!);
UDPManage().host = addresses.first.address;
var itemList = addresses.first.address.split(".");
for (var element in itemList) {
serversList.add(int.parse(element));
}
print(
'Resolved google.com to address: ${addresses.first.address} serversList$serversList');
}
}
var mobile = await Storage.getMobile();
timer = Timer.periodic(1.seconds, (timer) async {
UDPSenderManage.sendHeart(
userName: mobile,
ipList: serversList,
tokenStr: "b989fa15f75c2ac02718b7c9bb64f80e",
);
});
}
}
// Future<void> getWifiLockServiceIpAndPort() async {
// var entity = await ApiRepository.to.getWifiLockServiceIpAndPort();
// if(entity.errorCode! == 0){
//
// }
// }
dispose() {
timer!.cancel();
}
}
class UdpData {
bool isUsed = false;
}
// class UdpSendThread {
// List<UdpData> udpDatas = [];
// bool udpSendTag = true;
// int udpSendTime = 0;
//
// UdpSendThread() {
// for (int i = 0; i < BUFNUM; i++) {
// udpDatas.add(UdpData());
// }
// udpSend();
// }
//
// void udpSend() async {
// while (udpSendTag) {
// while (udpSendTime <= 0) {
// await Future.delayed(Duration(seconds: 1));
// }
// bool hasDataSend = true;
// while (hasDataSend) {
// hasDataSend = false;
// for (int i = 0; i < BUFNUM; i++) {
// UdpData udpList = udpDatas[i];
// if (udpList.isUsed) {
// // Do something
// } else {
// // Do something else
// }
// }
// await Future.delayed(Duration(seconds: 1));
// }
// udpSendTime--;
// }
// }
// }
// import 'dart:async';
//
// class UdpSendCondition {
// bool udpSendTag = true;
// int udpSendTime = 0;
// List udpDatas = [];
// Isolate isolate;
//
// void start() async {
// final receivePort = ReceivePort();
// isolate = await Isolate.spawn(_isolateEntry, receivePort.sendPort);
//
// receivePort.listen((message) {
// if (message == 'done') {
// udpSendTime--;
// if (udpSendTime <= 0) {
// stop();
// }
// }
// });
// }
//
// void stop() {
// if (isolate != null) {
// isolate.kill(priority: Isolate.immediate);
// isolate = null;
// }
// }
// }
//
// void _isolateEntry(SendPort sendPort) async {
// bool hasDataSend = true;
// while (hasDataSend) {
// hasDataSend = false;
// for (int i = 0; i < BUFNUM; i++) {
// var udpList = udpDatas[i];
// if (udpList.isUsed) {
// // Do something
// } else {
// // Do something else
// }
// }
// await Future.delayed(Duration(seconds: 1));
// }
// sendPort.send('done');
// }