设备绑定机制.md 5.6 KB

合方圆国标平台绑定流程

设备上线绑定服务流程

  1. 设备上线平台
  2. 用户注册账号
  3. 用户输入鉴定码
  4. 用户绑定设备
  5. 用户查询自己设备

设计要点

国标id冲突

[!tip] 可能会有多个不同设备使用相同的sip id, 导致用户管理到其他设备

所以, 在用户应该只与绑定码进行关联, 不关心设备id

设备重复注册

[!tip] 设备可能在注册后,更改国标id重新注册, 导致多台设备使用同一个绑定码

如果新设备绑定码与已有设备的绑定码有冲突, 则移除已有设备的绑定码,
确保一个绑定码永远只对应一个设备, 不对设备国标域进行区分.

平台角色管理

  1. [admin] 主管理员 唯一 平台的全部权限, 包括创建域名管理员
  2. [sub-admin] 子理员 多个 管理对应sip域下的对应设备 是否对对应的域信息进行设备绑定
  3. [adminAccount] 普通用户 多个 管理对应账户下的设备

用户表数据库设计

普通用户表 account
字段 类型 值介绍 默认 备注
id int 主键
account varchar(30) 登录账号 登录账号
name varchar(100) 昵称 随机用户id 用户名称
reginCode varchar(10) 手机号区号 86 用户手机号区号
phone varchar(16) 手机号 用户手机号
passwd varchar(255) 密码 用户密码摘要
用户绑定设备表 device_bind
字段 类型 值介绍 默认 备注
bindId int 主键
accountId int 用户id 用户id
devCode varchar(255) 绑定码 绑定码
createTime datetime 绑定时间 创建时间
管理员表 扩展 user
字段 类型 值介绍 默认 备注
primaryAdmin char 是否为主管理员 主管理员能够访问所有接口, 子管理员只能访问自己的设备
sip配置表 sipConfig

管理员sip配置表, 用于管理sip信息, 允许多种设备同步接入到平台 可以指定域启用绑定设备, 用于设备上线时获取设备绑定码, 用于app端用户绑定设备 不同域允许配置为黑名单, 白名单, 无限制 等形式对设备进行管理

字段 类型 值介绍 默认 备注
id int 主键
adminId int 管理员id 创建者id, 在注册时不发挥作用
sipDomain varchar(100) sip域名 sip域 唯一,根据域来获取对应的密码
serverId varchar(100) 服务器id 服务器id
password varchar(100) 服务器密码 密码
description varchar(255) 描述 描述
enable char(1) 是否启用 1 只有启用的情况下才会被允许注册
createTime datetime 创建时间 创建时间
enableBind char(1) 是否启用设备绑定 1 是否启用设备绑定 1 允许 0 不允许
管理员 sip 配置表 adminSip

配置表应该与管理员表进行区分
子管理员只能访问自己域的设备, 只有主管理员拥有全部权限

字段 类型 值介绍 默认 备注
id string pk 自增id
adminId varchar(100) tk 管理员id
sipId varchar(100) tk sip id
  1. 根据管理员id获取所有的设备及对应的 sip 配置信息:

    SELECT d.*, sc.*
    FROM devices d
         JOIN sipConfig sc ON d.domain = sc.sipDomain
         JOIN adminSip a ON sc.id = a.sipId
    WHERE a.adminId = < 管理员id >;
    
  2. 根据管理员id与设备id获取对应设备及对应的 sip 配置信息:

    SELECT d.*, sc.*
    FROM devices d
         JOIN sipConfig sc ON d.domain = sc.sipDomain
         JOIN adminSip a ON sc.id = a.sipId
    WHERE a.adminId = < 管理员id >
    AND d.id = < 设备id >;
    

设备表扩展 devices

字段 类型 值介绍 默认 备注
id int 主键
deviceId varchar(100) 设备id 设备sip id
domain varchar(100) sip域名 sip域, 与sip配置中的域进行对应
devCode varchar(255) 设备绑定码 设备绑定码

使用字段 devCode 设备注册时获取

设备上线平台

  1. 设备发送连接请求
  2. 平台根据域将设备分配至不同的管理账户下
  3. 对应域的管理员账户能够看自己域下方的设备
  4. 普通用户只能看自己的设备

sip交互

设备注册 -> 服务端处理 -> 是否为对应域 -> 下发命令 -> 设备响应 -> 服务端处理存储

下发sip Message HfyBind

上发 xml


<Respone>
    <DeviceID></DeviceID>
    <HfyCode></HfyCode>
</Respone>