空间换取时间不是一个很好的方案,retain 可以持久到磁盘,但是也有不小的开销;同时,这个功能不具备普遍性所以不会纳入需求。
但按照你的思路还有一个使用方法:
规则引擎配置 SQL 处理上下线事件
SELECT * FROM "$events/client_connected", "$events/client_disconnect"
配置 消息重新发布 的 Action,将消息转发到自己想要的主题,同时设置 retain: true: