212 lines
8.3 KiB
Dart
212 lines
8.3 KiB
Dart
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<String> 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");
|
|
}
|
|
}
|