Skip to content
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

AIRIOT智慧系统搭建平台经验交流

S

szj

@szj
关于
帖子
主题
群组
粉丝
关注

帖子

最新 最佳 有争议的

  • 通信时间永远不变
    S szj

    我删除那 2 个坏缓存 key,平台下次读取会自动从 postgres 重建(走和 12 台正常设备相同的路径)→ 通信时间和在线状态已经恢复。

    ————————
    这是平台 bug:

    平台在 10-19 升级/重建后,向 Redis 写入设备缓存时,creator 字段写成了裸用户 id 字符串("creator":"6a4ef5e8..."),而 online 服务按 entitys.UserSchema 结构体反序列化,直接报 json: cannot unmarshal string into Go struct field TableFunctionDataSchemaStruct.creator,导致设备缓存读取失败、通信时间不再更新、在线判断失效。
    已确认:postgres 里 creator 是 varchar(正常),12 台旧缓存里是展开后的对象(正常),只有被平台重建过缓存的 2 台是裸字符串——问题在缓存重建/序列化路径,不在数据源。
    现场临时修复后 online 报错归零、connectTime 恢复。


  • 通信时间永远不变
    S szj

    好的,上传日志了。


  • 通信时间永远不变
    S szj

    ws-data 版本 v4.1.44
    我是多空间版,我也不知道怎么查看“这个项目”的ws-data 日志。
    我大概能搜索到这些
    image.png

    image.png


  • 通信时间永远不变
    S szj

    通过mqtt上传数据,没有上传time,使用的平台默认值null
    其他设备(行),能正常更新时间,显示在线。
    就是有一个设备,也在上数,就是通信时间始终不变(显示离线了)
    之前还好的,突然不行了。

    618cc10e-e7df-4027-b542-bdfd7abeea87-image.png

    数据是会上传的。
    1a07ba86-7bae-4666-b1b8-55e48e1b10dc-image.png

    918a7322-94e6-4dd8-a97d-e9f16345b0ca-image.png

    fa3011d4-01b4-4f52-b45b-294d03db7290-image.png

    重启mqtt、重启onlie服务,都不行。


  • 我用一个非管理员角色用户“前台管理员”创建角色、用户,自己都看不到
    S szj

    d44445ab-951f-4269-8f5f-542ed4c0185c-image.png

    我用超级管理员,创建一个专门前台用的角色:”前台管理员”、以及用户。
    然后用 ”前台管理员” 去创建其他角色、用户。
    结果,都看不到角色、用户。
    整个平台,只有“超级管理员”,才能看 其他都角色、用户。


  • 授权丢了,机器码一直变
    S szj

    换服务器不显示。服务器没有问题,为什么要换?!
    换服务器,费用谁出? 差旅费?调试费?

    我们写了java代码,进行2轮测试:300次,1000次,做了分析报告。
    你们仔细研究一下。已经上传。
    结论已经非常明显了。

    c69b435a-64ad-4c9e-b8d7-170ab5a967a2-image.png
    这是最关键的发现:

    不同取数通道,对同一个 WMI 字段返回的字符串末尾控制符数量不一样。
    WMIC 多一个 \r,PowerShell 少一个 \r。

    二、300 轮统计
    所有字段 300 轮全部稳定:控制符变体 = 0,内容变化 = 0
    原始串 MD5 = 1 种,归一化串 MD5 = 1 种
    通道错误 86 次 / 总读取 2314 次,约 3.7%
    也就是说:在当前这个独立 JVM、Administrator 身份、前台 cmd 的环境下,机器码是稳定的。

    300 轮报告证明了跳变的物质基础已经存在:

    控制符污染是真实的:所有字段值末尾都带 \r,WMIC 还多一个;
    不同通道控制符数量不同:平台代码如果有多个取数路径(WMIC / PowerShell / OSHI / JNI),或者在错误重试时切换路径,就会得到不同的原始输入;
    通道错误率 3.7%:失败后的兜底逻辑如果使用不同通道或不同解析方式,就会产生不同的机器码。


  • 授权丢了,机器码一直变
    S szj

    采集1000次,每30秒采集一次。采集了一个晚上。结果没有丝毫变化。
    好几个项目,安装的Windows系统版本 、以及服务器 配置,都是经常用的,都是Windows Server 2022 Standard。


  • 授权丢了,机器码一直变
    S szj

    powershell脚本 采集1000次,无变化


  • 授权丢了,机器码一直变
    S szj

    我再给你采集1000次看看。到时候 把采集的powershell脚本、采集结果都发给你。


  • 授权丢了,机器码一直变
    S szj

    实际的值,没有变化。
    我采集了20次,都没有变化。我不是发给你看过了吗?
    平台采集的值有变化,恰恰究竟是平台的bug所在。


  • 授权丢了,机器码一直变
    S szj

    我们做了几年了,好几个项目/服务器了。没遇到过这样的情况。服务器是用的 工控机;不是联想、戴尔这样的服务器。
    之前从未出现这样的情况。仅此一次。


  • 授权丢了,机器码一直变
    S szj

    请尽快看下这个问题呢。现在平台一直不能用了。重启好一会会。然后又不行了。


  • 授权丢了,机器码一直变
    S szj

    机器没什么特别的。之前几台机器,也是这样的。

    一、字段「有时显示 Default string、有时显示为空」的原因

    核心结论

    硬件的真实值始终是 Default string,显示为空不是值真的变成了空字符串,而是不可见的回车 / 换行控制符导致的前端渲染异常,属于 “肉眼看起来空、实际字符串有内容” 的假象。

    原理与证据

    1. 不可见控制符随机混入
      Web 环境通过 COM 组件读取 WMI 时,会随机在字符串尾部残留回车符 \r(ASCII 0x0D)或换行符 \n(ASCII 0x0A):
      • 纯文本 Default string(14 字节)→ 单元格正常显示文字
      • 带回车 Default string\r(15 字节)→ \r 会让光标回到行首,文字被自身覆盖,单行单元格看起来就是空白
      • 带回车换行 Default string\r\n(16 字节)→ 文字折行到第二行,超出单元格显示范围,看起来也是空白
    2. 直接佐证
      表格中同样显示 Default string 的行,机器码却完全不同—— 说明肉眼看到的字符串一致,但实际参与计算的字节内容不同(多了看不见的控制符),这是最核心的证据。
      反过来,部分行字段显示为空,但机器码和正常显示的行完全一致,也说明值本身没有变,只是渲染出来看不见。

    彻底修复方案
    在生成机器码的代码中,对所有硬件字段做标准化清洗后再参与哈希:

    • 强制修剪首尾所有空白 / 控制符:Trim()(去除空格、\r、\n、制表符)
    • 占位值统一替换:把 Default string、空值统一替换为固定常量(如 "EMPTY_SN"),彻底放弃原始 WMI 返回值
    • BIOS 版本统一序列化:固定只取数组第二个元素(版本日期字符串),不要直接序列化整个数组

  • 授权丢了,机器码一直变
    S szj

    好的,发给你~~


  • 授权丢了,机器码一直变
    S szj

    重启服务器,可以登录系统。
    历史授权中,没有看到机器信息。

    image.png


  • 授权丢了,机器码一直变
    S szj

    1、机器码正常的:7811a18baa24dee80831cd8c5376ff9ca9b963
    有时候变化的:466fdb12c1bfd6a04da78cea5945dde4a9b963
    有时候变化的:7dc8556e7b7581aeec26410197ae22f8a9b963
    有时候变化的(我贴在一开始截图的)cf07开头的**********************a9b963
    其他的我也没观察到,不知道会不会变成其他的了。

    2、core版本:v4.5.6
    3、负载很低,不超过100个点位。
    image.png

    4、没做什么操作,部署后没去管他,一直运行的。
    5、上传授权文件失败,第一次报错:

    image.png

    第二次报错:
    image.png


  • 授权丢了,机器码一直变
    S szj

    单机版部署的。Windows Server 2022 Standard。
    1台本地服务器(工控机)。不是云平台。
    Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
    已经运行1年了,突然出现的问题。


  • 授权丢了,机器码一直变
    S szj

    我给你传输我记录的信息吧。你收一下。


  • 授权丢了,机器码一直变
    S szj

    不是你说的这样。
    是机器码一会就变一下,一会就变一下。刷新一下网页,机器码就变了。


  • 如何从第三方平台,单点登录本系统
    S szj

    用户“张三” 已经登录了第三方A平台,现在想要“无感地单点登录”进入airiot平台。
    不需要再次登录、不用输入用户名密码;
    不同于免登录(我知道免登录是 url?token= *token的办法,但是这个免登录后不是用户“张三”本人的账号,而是appip的账号。不符合我的要求。)

    希望: 张三不需要 在airiot输入账号密码、不是免登录,而是“单点登录”到airiot,登录后的账号和权限都是是“张三”的。

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组