2024-02-03

忆志-服务器-中心服务器

成果

es-center-server-web-uiopen in new window 用户名: admin 密码: es888888

es-center-server-main-serviceopen in new window

es-center-server-main-service-docopen in new window

es-center-server-app-serviceopen in new window

es-center-server-app-service-docopen in new window

es-center-server-device-serviceopen in new window

es-center-server-device-service-docopen in new window

2024-01-29

  • 已完成 New 中心服务器所有代码进行检查:
    • 命名规范化(见名知意): sqlFilteringMethod String 改为 sqlQueryCriteriaLike Boolean, sqlFilteringMethodMap Map<String, String> 改为 sqlQueryCriteria Map<String, String>, sqlSorterMap Map<String, String> 改为 sqlQuerySorter Map<String, String>, sqlLimit Long 改为 sqlQueryLimit Long
  • 已完成 New 中心服务器与设备对接服务接口: socker v1(旧协议)同步开发对应的 socker v2(新协议)
  • 已完成 New 中心服务器与设备对接服务文档内容, 对照 API 变更进行完善

2024-01-30

  • 已完成 New 中心服务器与设备对接服务接口 socker v2 加解密处理:
服务端解密重试机制:

先用数据库存的对应设备的密钥

失败后, 数据库中存的对应设备的密钥重置为固定的密钥(不相同时), 用固定的密钥来解密

加密时用数据库中存的对应设备的密钥
  • 进行中 New 中心服务器与设备对接服务接口 socker v2:
    • 已完成 执法仪设备-查询-详情: 含 p2p: 域名, 端口及授权码; 采集站服务器: 局域网 ip, 外网 ip, 专网 ip, 域名 以及对应的 web 端口和上传端口
    • 已完成 执法仪设备-上报信息(添加定位信息)
    • 已完成 执法仪设备-获取密钥
    • 已完成 执法仪设备-变更密钥
    • 已完成 执法仪设备-确认变更密钥
    • 已完成 指纹机设备-获取密钥
    • 已完成 指纹机设备-变更密钥
    • 已完成 指纹机设备-确认变更密钥
  • 已完成 New 中心服务器与设备对接服务文档内容, 对照 API 变更进行完善

2024-01-31

  • 已完成 New 中心服务器与设备对接服务接口 http:
    • 已完成 通知指纹机确认变更密钥
    • 已完成 执法仪设备-上报信息(添加定位信息)
  • 已完成 New 中心服务器 app 服务接口:
    • 已完成 执法仪设备-详情(含密钥)
  • 已完成 Modify 中心服务器 app 服务接口:
    • 已完成 查询-组织-列表-含设备列表(添加密钥)
  • 已完成 Modify 中心服务器与采集服务器对接服务合并到中心服务器与设备对接服务中: 优化内存占用, 中心服务器与采集服务器对接服务中的接口并不多, 可以合并到一起。
  • 已完成 New 中心服务器与设备对接服务文档内容, 对照 API 变更进行完善

2024-02-01

  • 已完成 New 中心服务器与设备对接, mqtt v1: 开发环境中 mqtt 服务器 emqx 服务搭建
  • 已完成 New 中心服务器与设备对接, mqtt v1: 服务端框架集成 mqtt 客户端并调试通过
  • 已完成 New 中心服务器与设备对接, mqtt v1: mqtt 服务器 emqx 通过 redis 进行认证处理, 后续通过 http 接口提供设备申请密码

2024-02-02

  • 已完成 New 中心服务器与设备对接, mqtt v1: mqtt 服务器 emqx 安装时自动配置好用 redis 做客户端授权及客户端认证
cd /es-center-server

mkdir -p /autofs/mnt/sd-0/es-center-server-emqx/data
mkdir -p /autofs/mnt/sd-0/es-center-server-emqx/etc
mkdir -p /autofs/mnt/sd-0/es-center-server-emqx/log
chmod -R 777 /autofs/mnt/sd-0/es-center-server-emqx
chown -R 1001:1001 /autofs/mnt/sd-0/es-center-server-emqx
chmod -R 777 /autofs/mnt/sd-0/es-center-server-emqx

docker-compose -f docker-compose-es-center-server-emqx.yml down
docker-compose -f docker-compose-es-center-server-emqx.yml up -d

sleep 15

cat >/autofs/mnt/sd-0/es-center-server-emqx/data/configs/cluster.hocon <<\EOF
authentication = [
  {
    backend = redis
    cmd = "HMGET mqtt_user:${username} password_hash salt"
    database = 3
    mechanism = password_based
    password = "1234abcd1234"
    password_hash_algorithm {name = plain, salt_position = disable}
    pool_size = 8
    redis_type = single
    server = "es-center-server-redis:6379"
    ssl {enable = false, verify = verify_peer}
  }
]
authorization {
  cache {
    enable = true
    max_size = 32
    ttl = 1m
  }
  deny_action = ignore
  no_match = allow
  sources = [
    {
      cmd = "HGETALL mqtt_acl:${username}"
      database = 3
      password = "1234abcd1234"
      pool_size = 8
      redis_type = single
      server = "es-center-server-redis:6379"
      ssl {enable = false, verify = verify_peer}
      type = redis
    }
  ]
}
EOF

docker-compose -f docker-compose-es-center-server-emqx.yml restart
  • 已完成 New 中心服务器与设备对接, mqtt v1: 中心服务器启动时自动申请或更新 mqtt 客户端帐号后, 连接 mqtt 服务器, 订阅主题 es-center-server/#
  • 已完成 New 中心服务器与设备对接, mqtt v1, 开发配套的接口: 采集站设备申请或更新 mqtt 客户端帐号, 指纹机设备申请或更新 mqtt 客户端帐号, 执法设备申请或更新 mqtt 客户端帐号
  • 已完成 New 中心服务器与设备对接, mqtt v1, 原有 sokect v2 接口 开发对应的 mqtt 接口:
    • 已完成 记录仪设备: 认证

2024-02-02

  • 已完成 New 中心服务器与设备对接, mqtt v1: 中心服务器, 采集服务器, 执法仪设备, 指纹机设备, 这些设备通过 mqtt 相互交互用到的 topic 规则制定, mqtt client id: ${设备类型编号},${设备编号}
    @Schema(description = "Publish center server topic template")
    private String publishCenterServerTopicTemplate = "center-server/${subscribeDeviceNo}/${crypto}/${api_version}/${cmd}/${publishDeviceTypeNo}/${publishDeviceNo}";

    @Schema(description = "Subscribe center server topic")
    private String subscribeCenterServerTopic = "center-server/#";

    @Schema(description = "Publish data acquisition server topic template")
    private String publishDataAcquisitionServerTopicTemplate = "data-acquisition-server/${subscribeDeviceNo}/${crypto}/${api_version}/${cmd}/${publishDeviceTypeNo}/${publishDeviceNo}";

    @Schema(description = "Subscribe data acquisition server subscribe topic")
    private String subscribeDataAcquisitionServerTopic = "data-acquisition-server/${subscribeDeviceNo}/#";

    @Schema(description = "Publish data acquisition device topic template")
    private String publishDataAcquisitionDeviceTopicTemplate = "data-acquisition-device/${subscribeDeviceNo}/${crypto}/${api_version}/${cmd}/${publishDeviceTypeNo}/${publishDeviceNo}";

    @Schema(description = "Subscribe data acquisition device subscribe topic")
    private String subscribeDataAcquisitionDeviceTopic = "data-acquisition-device/${subscribeDeviceNo}/#";

    @Schema(description = "Publish fingerprint scanner topic template")
    private String publishFingerprintScannerTopicTemplate = "fingerprint-scanner/${subscribeDeviceNo}/${crypto}/${api_version}/${cmd}/${publishDeviceTypeNo}/${publishDeviceNo}";

    @Schema(description = "Subscribe fingerprint scanner subscribe topic")
    private String subscribeFingerprintScannerTopic = "fingerprint-scanner/${subscribeDeviceNo}/#";
  • 已完成 New 中心服务器与设备对接服务接口开发, mqtt v1: 加解密处理
  • 已完成 Modify 中心服务器与设备对接服务接口开发, mqtt v1: 记录仪设备: 认证, 修改为按新制定的规则进行交互
  • 已完成 New 中心服务器与设备对接服务接口开发, mqtt v1:
    • 已完成 记录仪设备: 上报信息
  • 已完成 New 中心服务器与设备对接服务文档内容, 对照 API 变更进行完善
Last Updated: