diff --git a/Dockerfile b/Dockerfile index 6657431..834aec6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ LABEL qmqz=admin@ipayl.com # Resolve app dependencies. WORKDIR /app COPY pubspec.* ./ -RUN dart pub get +RUN export PUB_HOSTED_URL=https://pub.flutter-io.cn && dart pub get ADD bin /app/bin RUN dart compile exe bin/main.dart -o bin/server diff --git a/bin/main.dart b/bin/main.dart index fe6a864..8435c5f 100644 --- a/bin/main.dart +++ b/bin/main.dart @@ -2,15 +2,10 @@ import 'dart:convert'; import 'dart:io'; import 'package:EasyDartModule/EasyDartModule.dart'; -import 'package:EasyDartModule/base/database/DataBase.dart'; -import 'package:EasyDartModule/base/discovery/Discovery.dart'; import 'package:EasyDartModule/base/logger/Logger.dart'; -import 'package:EasyDartModule/base/mqtt/mqtt.dart'; import 'package:EasyDartModule/base/redis/redis.dart'; -import 'package:EasyDartModule/base/storage/Storage.dart'; import 'package:EasyDartModule/base/websocket/WebSocket.dart'; -import './const/Constants.dart'; import './controller/AreaController.dart'; import './controller/BedController.dart'; import './controller/BedTypeController.dart'; @@ -23,138 +18,27 @@ import './controller/RoomTypeController.dart'; // import './service/AlarmRuleService.dart'; import './controller/FileUploadController.dart'; -import 'handler/MqttHandler.dart'; import 'const/ServiceConstant.dart'; // import 'service/DailyTaskService.dart'; import './const/CommonVariables.dart'; void main(List args) async { - if (true) { - initEasyDartModule(); - await EasyDartModule.redis.connect(); - // return; - } - if (false) { - String? ep = Platform.environment["vsbs_server_port"]; - int port = ep == null ? 9200 : int.parse(ep); - String nacosServer = - Platform.environment["nacos_server"] ?? "http://10.20.1.2:8848"; - String nacosNameSpaceId = Platform.environment["nacos_namespaceId"] ?? - "d3b43bfe-f584-4b8f-a390-353abc69c856"; - String nacosBindIp = Platform.environment["nacos_bindIp"] ?? ""; - //初始化服务发现 - EasyDartModule.init( - discoveryConfig: - DiscoveryConfig(host: nacosServer, namespaceId: nacosNameSpaceId)); - //注册实例 - await EasyDartModule.discovery - .registerInstance(Constants.serviceName, nacosBindIp, Constants.port); - - //查询日志服务配置信息 - String logger = await EasyDartModule.discovery.getConfig("logger"); - var loggerConfig = jsonDecode(logger); - //查询数据库配置信息 - String mongodb = await EasyDartModule.discovery.getConfig("mongodb"); - var mongodbConfig = jsonDecode(mongodb); - //查询存储配置 - String storage = await EasyDartModule.discovery.getConfig("storage"); - var storageConfig = jsonDecode(storage); - //查询mqtt配置 - String mqtt = await EasyDartModule.discovery.getConfig("mqtt"); - var mqttConfig = jsonDecode(mqtt); - var redisConfig = - jsonDecode(await EasyDartModule.discovery.getConfig("redis")); - - var gatewayConfig = - jsonDecode(await EasyDartModule.discovery.getConfig("gateway")); - ServiceConstant.service_address = gatewayConfig["host"]; -// ServiceConstant.service_address = "https://vsbst-api.he-info.cn"; - - MqttHandler mqttHandler = MqttHandler(); - - EasyDartModule.init( - loggerConfig: LoggerConfig( - host: loggerConfig["host"], serviceName: Constants.serviceName), - dataBaseConfig: DataBaseConfig( - host: mongodbConfig["host"], - userName: mongodbConfig["userName"], - password: mongodbConfig["password"], - dataBase: mongodbConfig["dataBase"]), - storageConfig: StorageConfig( - host: storageConfig["host"], - port: storageConfig["port"], - accessKey: storageConfig["accessKey"], - secretKey: storageConfig["secretKey"]), - mqttConfig: MqttConfig( - host: mqttConfig["host"], - clientId: mqttConfig["clientId"], - topic: [mqttConfig["topic"]], - messgae: (topic, msg) { - mqttHandler.message(topic, msg); - // print("topic: $topic, msg:$msg"); - }), - redisConfig: - RedisConfig(host: redisConfig["host"], port: redisConfig["port"])); - - EasyDartModule.webServer.addHandler(RoomController()); - EasyDartModule.webServer.addHandler(RoomTypeController()); - EasyDartModule.webServer.addHandler(BedTypeController()); - EasyDartModule.webServer.addHandler(BedController()); - EasyDartModule.webServer.addHandler(DiseaseTypeController()); - EasyDartModule.webServer.addHandler(PersonController()); - EasyDartModule.webServer.addHandler(PersonTypeController()); - // EasyDartModule.webServer.addHandler(StatisticsController()); - EasyDartModule.webServer.addHandler(AreaController()); - EasyDartModule.webServer.addHandler(FileUploadController()); - EasyDartModule.webServer.start(port); - - //测试mqtt 订阅 - // EasyDartModule.mqtt - // .subscribe("/vsbs/sensor/mattress/676a227a1e121f98e5000000", 0); - // EasyDartModule.mqtt.connect(); - // EasyDartModule.mqtt. - //推送 - // EasyDartModule.mqtt.publish(topic, msg); - //测试db - // Future.delayed(Duration(seconds: 5), () async { - // var db = EasyDartModule.dataBase; - // var r = await db.query("uc_sys_user"); - // print(r); - // }); - - //测试storage - // String bucketName = "test-bu"; - // String objectName = "/aa/bb/objectName.gif"; - // EasyDartModule.storage.createBucket(bucketName).then((v) { - // EasyDartModule.storage - // .uploadObject(bucketName, objectName, File("a.gif").readAsBytesSync()) - // .then((path) { - // print("上传文件: $path"); - // EasyDartModule.storage.getObject(bucketName, objectName).then((data) { - // print("下载文件"); - // File("b.gif").writeAsBytesSync(data); - // print("下载完毕"); - // }); - // }); - // // EasyDartModule.storage.deleteObject(bucketName, "objectName"); - // }); - - await EasyDartModule.redis.connect(); - - // AlarmRuleService(); - // DailyTaskService(); - // EasyDartModule.logger - // .info("${Constants.serviceName}启动完毕", tag: Constants.serviceName); - } + initEasyDartModule(); } -void initEasyDartModule() { +Future initEasyDartModule() async { try { + String? web = Platform.environment["web_port"] ?? "9200"; + List redis = + (Platform.environment["redis"] ?? "127.0.0.1:6379").split(":"); + if (redis.length == 1) { + redis.add("6379"); + } EasyDartModule.init( loggerConfig: LoggerConfig( host: ServiceConstant.logService, serviceName: "快检报告服务"), - redisConfig: RedisConfig(host: "192.168.1.129", port: 6379), + redisConfig: RedisConfig(host: redis[0], port: int.parse(redis[1])), webSocketConfig: WebSocketConfig(ServiceConstant.webSocketService, (data) { // 接收到服务消息 @@ -193,6 +77,10 @@ void initEasyDartModule() { print("object"); })); + while (!EasyDartModule.redis.isConnected()) { + await Future.delayed(Duration(seconds: 1)); + } + EasyDartModule.webServer.addHandler(RoomController()); EasyDartModule.webServer.addHandler(RoomTypeController()); EasyDartModule.webServer.addHandler(BedTypeController()); @@ -203,7 +91,9 @@ void initEasyDartModule() { // EasyDartModule.webServer.addHandler(StatisticsController()); EasyDartModule.webServer.addHandler(AreaController()); EasyDartModule.webServer.addHandler(FileUploadController()); - EasyDartModule.webServer.start(9200,); + EasyDartModule.webServer.start( + int.parse(web), + ); } catch (e) { print(e); EasyDartModule.logger.error("websocket连接失败--》:$e"); diff --git a/bin/service/AreaService.dart b/bin/service/AreaService.dart index 4d0ed08..36b7592 100644 --- a/bin/service/AreaService.dart +++ b/bin/service/AreaService.dart @@ -71,7 +71,7 @@ class AreaService { Future _recoverExperiences() async { try { // 使用keys方法获取所有体验中的设备 - final keys = await edm.EasyDartModule.redis.keys("experience_*"); + final keys = await edm.EasyDartModule.redis.scanKeys("experience_*"); for (var key in keys) { try { diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..d7de54a --- /dev/null +++ b/build.bat @@ -0,0 +1,2 @@ +@echo off +docker build -t 10.20.2.5:5000/data_manage . diff --git a/pubspec.lock b/pubspec.lock index c50ccaa..08c5a76 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -6,7 +6,7 @@ packages: description: path: "." ref: master - resolved-ref: fadc39301e5c57173e5f16c2600bc4c2abd47102 + resolved-ref: a34d58f93eb692c976d1be165920a03a54dea027 url: "https://git.he-info.cn/qmqz/easy_dart_module.git" source: git version: "1.0.0" @@ -83,10 +83,10 @@ packages: dependency: transitive description: name: bson - sha256: "9071b154b5cd96482c2e116b015e87acfdc8412630cc8f3aba60c539a8ef5442" + sha256: f8c80be7a62a88f4add7c48cc83567c36a77532de107224df8328ef71f125045 url: "https://pub.flutter-io.cn" source: hosted - version: "5.0.5" + version: "5.0.7" buffer: dependency: transitive description: @@ -155,10 +155,10 @@ packages: dependency: transitive description: name: built_value - sha256: ea90e81dc4a25a043d9bee692d20ed6d1c4a1662a28c03a96417446c093ed6b4 + sha256: "7931c90b84bc573fef103548e354258ae4c9d28d140e41961df6843c5d60d4d8" url: "https://pub.flutter-io.cn" source: hosted - version: "8.9.5" + version: "8.12.3" characters: dependency: transitive description: @@ -183,6 +183,14 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "2.0.3" + cli_config: + dependency: transitive + description: + name: cli_config + sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec + url: "https://pub.flutter-io.cn" + source: hosted + version: "0.2.0" clock: dependency: transitive description: @@ -219,10 +227,10 @@ packages: dependency: transitive description: name: coverage - sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43 + sha256: "5da775aa218eaf2151c721b16c01c7676fbfdd99cebba2bf64e8b807a28ff94d" url: "https://pub.flutter-io.cn" source: hosted - version: "1.11.1" + version: "1.15.0" cross_file: dependency: transitive description: @@ -235,10 +243,10 @@ packages: dependency: transitive description: name: crypto - sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.6" + version: "3.0.7" csslib: dependency: transitive description: @@ -275,18 +283,18 @@ packages: dependency: transitive description: name: decimal - sha256: "28239b8b929c1bd8618702e6dbc96e2618cf99770bbe9cb040d6cf56a11e4ec3" + sha256: fc706a5618b81e5b367b01dd62621def37abc096f2b46a9bd9068b64c1fa36d0 url: "https://pub.flutter-io.cn" source: hosted - version: "3.2.1" + version: "3.2.4" dio: dependency: transitive description: name: dio - sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + sha256: d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9 url: "https://pub.flutter-io.cn" source: hosted - version: "5.8.0+1" + version: "5.9.0" dio_web_adapter: dependency: transitive description: @@ -406,10 +414,10 @@ packages: dependency: transitive description: name: google_identity_services_web - sha256: "55580f436822d64c8ff9a77e37d61f5fb1e6c7ec9d632a43ee324e2a05c3c6c9" + sha256: "5d187c46dc59e02646e10fe82665fc3884a9b71bc1c90c2b8b749316d33ee454" url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.3" + version: "0.3.3+1" googleapis_auth: dependency: transitive description: @@ -430,10 +438,10 @@ packages: dependency: transitive description: name: grpc - sha256: "30e1edae6846b163a64f6d8716e3443980fe1f7d2d1f086f011d24ea186f2582" + sha256: "2dde469ddd8bbd7a33a0765da417abe1ad2142813efce3a86c512041294e2b26" url: "https://pub.flutter-io.cn" source: hosted - version: "4.0.4" + version: "4.1.0" hive: dependency: transitive description: @@ -454,18 +462,18 @@ packages: dependency: transitive description: name: html - sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" url: "https://pub.flutter-io.cn" source: hosted - version: "0.15.5" + version: "0.15.6" http: dependency: "direct dev" description: name: http - sha256: fe7ab022b76f3034adc518fb6ea04a82387620e19977665ea18d30a1cf43442f + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" url: "https://pub.flutter-io.cn" source: hosted - version: "1.3.0" + version: "1.6.0" http2: dependency: transitive description: @@ -582,10 +590,10 @@ packages: dependency: "direct overridden" description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "1741988757a65eb6b36abe716829688cf01910bbf91c34354ff7ec1c3de2b349" url: "https://pub.flutter-io.cn" source: hosted - version: "1.16.0" + version: "1.18.0" mime: dependency: transitive description: @@ -598,18 +606,18 @@ packages: dependency: transitive description: name: minio - sha256: "9fa3d041237d3a0dabfd14c11f6adbefe71f6973d64192f6f1fc3e174013001e" + sha256: ee2ce47766e46c7d164f960f2f5ed6a9a82844d877f6b82574f6876ec50c56d1 url: "https://pub.flutter-io.cn" source: hosted - version: "3.5.7" + version: "3.5.8" mongo_dart: dependency: "direct main" description: name: mongo_dart - sha256: "5e94f2f7fc779eeab677afd5d98dc63f1f35a6adb4629d4b9d25028a4d06fd21" + sha256: "43b62b43c6449a0159bf138fba27653cb35acd92d3587ad26d1ec068cd645559" url: "https://pub.flutter-io.cn" source: hosted - version: "0.10.4" + version: "0.10.5" mongo_dart_query: dependency: transitive description: @@ -742,10 +750,10 @@ packages: dependency: transitive description: name: pool - sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d" url: "https://pub.flutter-io.cn" source: hosted - version: "1.5.1" + version: "1.5.2" posix: dependency: transitive description: @@ -911,14 +919,6 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.10.1" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.flutter-io.cn" - source: hosted - version: "7.0.0" stack_trace: dependency: transitive description: @@ -963,26 +963,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "301b213cd241ca982e9ba50266bd3f5bd1ea33f1455554c5abb85d1be0e2d87e" + sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" url: "https://pub.flutter-io.cn" source: hosted - version: "1.25.15" + version: "1.26.3" test_api: dependency: transitive description: name: test_api - sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.flutter-io.cn" source: hosted - version: "0.7.4" + version: "0.7.7" test_core: dependency: transitive description: name: test_core - sha256: "84d17c3486c8dfdbe5e12a50c8ae176d15e2a771b96909a9442b40173649ccaa" + sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" url: "https://pub.flutter-io.cn" source: hosted - version: "0.6.8" + version: "0.6.12" timing: dependency: transitive description: @@ -1019,18 +1019,18 @@ packages: dependency: transitive description: name: unorm_dart - sha256: "23d8bf65605401a6a32cff99435fed66ef3dab3ddcad3454059165df46496a3b" + sha256: "0c69186b03ca6addab0774bcc0f4f17b88d4ce78d9d4d8f0619e30a99ead58e7" url: "https://pub.flutter-io.cn" source: hosted - version: "0.3.0" + version: "0.3.2" uuid: dependency: transitive description: name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + sha256: a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8 url: "https://pub.flutter-io.cn" source: hosted - version: "4.5.1" + version: "4.5.2" vector_math: dependency: transitive description: @@ -1043,10 +1043,10 @@ packages: dependency: transitive description: name: vm_service - sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" url: "https://pub.flutter-io.cn" source: hosted - version: "15.0.0" + version: "15.0.2" vy_string_utils: dependency: transitive description: @@ -1059,10 +1059,10 @@ packages: dependency: transitive description: name: watcher - sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" + sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635" url: "https://pub.flutter-io.cn" source: hosted - version: "1.1.1" + version: "1.2.1" web: dependency: transitive description: @@ -1075,18 +1075,18 @@ packages: dependency: transitive description: name: web_socket - sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" url: "https://pub.flutter-io.cn" source: hosted - version: "0.1.6" + version: "1.0.1" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "0b8e2457400d8a859b7b2030786835a28a8e80836ef64402abef392ff4f1d0e5" + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 url: "https://pub.flutter-io.cn" source: hosted - version: "3.0.2" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: diff --git a/push.bat b/push.bat new file mode 100644 index 0000000..a7c79d1 --- /dev/null +++ b/push.bat @@ -0,0 +1,2 @@ +@echo off +docker push 10.20.2.5:5000/data_manage