emqttd中现有的两种方式:
1.通过HTTP API (/api/clients)可以获取当前在线的所有用户
2.通过订阅系统主题
$SYS/brokers/${node}/clients/${clientid}/connected
$SYS/brokers/${node}/clients/${clientid}/disconnected
分别接收用户上线和下线的通知
第一种方式我的想法是通过定时任务,每隔一段时间获取一次所有在线用户,然后对比更新redis
第二种方式就是正常的收到通知单条更新,但是界面刷新时也会更新状态,而且有绕过这种检测的可能性,不太可靠。
故还是考虑使用第一种方式。
想请问一下各位高手如果在线设备在1-2W左右的话该如何设计状态更新策略? 开多个线程查表,还是其他方法?