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'; import './controller/DiseaseTypeController.dart'; import './controller/PersonController.dart'; import './controller/PersonTypeController.dart'; import './controller/RoomController.dart'; import './controller/RoomTypeController.dart'; // import './controller/StatisticsController.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); } } void initEasyDartModule() { try { EasyDartModule.init( loggerConfig: LoggerConfig( host: ServiceConstant.logService, serviceName: "快检报告服务"), redisConfig: RedisConfig(host: "192.168.1.129", port: 6379), webSocketConfig: WebSocketConfig(ServiceConstant.webSocketService, (data) { // 接收到服务消息 var json = jsonDecode(data); // ef.log("[websokcet]:${json}"); EasyDartModule.logger.info("[websokcet数据]:${json}"); if (json['wsId'] != null) { // ef.kvRoot.websocketId = json['wsId']; } if (json['code'] != null && json['code'] != 200) { EasyDartModule.logger .error("[websokcet数据]:websocket连接失败--》" + json['msg']); } if (json["path"] != null) { var call = CommonVariables.callMap[json["path"]]; if (call != null) { try { if (json['path'] != "/smartbed/connect") { call(json["data"]); } else { call(json); } } catch (e) { print(e); } } else { print("未找到当前路径: ${json["path"]} 回调函数"); EasyDartModule.logger.error("未找到当前路径: ${json["path"]} 回调函数"); } } // print(data); }, onOpen: () { // 连接建立完毕 // EasyDartModule.websocket // .sendData(jsonEncode({"path": "/aa/bb", "type": 1})); print("object"); })); 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(9200,); } catch (e) { print(e); EasyDartModule.logger.error("websocket连接失败--》:$e"); } }