$_SESSION里面的参数名可以用$client_id吗?

dou号

请问在Gateway::bindUid($client_id,$device)后,执行$_SESSION[$client_id]=$device来保存设备id是否可行?当设备掉线出发onClose时,通过$_SESSION[$client_id]来获取设备id会有问题吗?因为我这边发现有时候会出现触发onClose时,$client_id不存在的情况,触发onClose的时候$client_id会存在丢失的情况吗?

280 2 0
2个回答

yingzi1990

不可行,重连client_id就变了

  • dou号 2024-07-25

    我在onClose里面加了!Gateway::isUidOnline($_SESSION[$client_id])这个判断,仅当这个条件成立时才会去更新数据库设备的状态

  • yingzi1990 2024-07-26

    你要实现的业务场景是什么?!Gateway::isUidOnline($device)这样判断岂不是更好

walkor 打赏

你的SESSION设置是在onMesage里触发的,则无法保证每个连接都100%触发onMessage操作,例如客户端只发起了连接,还没发任何数据连接就断开。还有外网有很多网络探测程序,不会触发onMessage操作。
所以你要自己判断SESSION是否存在

  • 暂无评论
×
🔝