问题背景:在PC端与APP端使用同一套数据库来进行开发,前端显示为两套代码进行开发
问题描述:
场景1:当同一个账号在PC端与APP端登录时,需要对同一台设备进行控制时,假设此时用户在PC端进行操作,那么在APP端需要同步PC端的数据,若是APP端再次进行操作时,会出现冲突的情况
场景2:不同账号,控制同一台设备时,也会出现冲突的情况
问题解决:
方案一:使用互斥锁来实现,当用户点击设备控制进入控制页面时,获取下此时设备是否被使用,若是被使用中,则提示用户设备在使用中,锁定状态下不允许进入控制页;若未使用则跳转至设备控制页,此时需要定时调用接口,将设备的使用信息(用户ID,设备ID,操作设备类型)给后端,若离开词页面,清除定时器,后端根据是否有用户操作判断是否释放此设备锁定状态。
方案二:使用MQTT来实现此功能
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议。它被设计用来在低带宽、高延迟或不可靠的网络中进行通信,因此非常适合物联网(IoT)设备之间的通讯