我们在使用过程中遇到一个问题,我们有一个设备上线发送离线消息的功能,我们在设备上线发送webhook 时进行发送离线消息,发现这时设备的订阅没有准备好,消息不能发送给设备,然后改使用会话订阅事件来发送离线消息,但是设备存在多个会话订阅,想问一下有没有其他事件或者方法可以解决我们的问题
不太明白遇到了什么问题,能展开详细说说么。
我们有个功能是设备上线时,将设备在离线时期缓存的消息重发给设备。为了实现这个功能,我们一开始使用了设备上线事件的webhook,但是发现这时设备的订阅会话并没有准备好,发送的消息都被拒绝了。然后我们又使用第二种方法,监听设备会话订阅的webhook,但是又发现设备存在多个会话订阅,就会发送多个会话订阅的webhook。所以我想问,有没有什么更好的办法,或者说有没有其他的webhhook 事件能够满足我们这个功能的需求
我觉得订阅的 webhook 不错啊。自己在 webhook 那里判断一下,订阅了什么topic,就再下发对应 topic 的缓存消息应该可行吧。
我能想到更好的方法就是:
设备上线后,自己订阅好对应的主题后,主动再发一个online/${clientid} ,然后缓存消息的服务器订阅这个 topic,收到 online 消息后,再下发。
我现在想到的方法就是重写一个规则,用来匹配设备最后一个会话订阅,当最后一个会话订阅准备好之后发送webhook,这样就只会发送一个webhook,发送前,设备的所有会话订阅也已经准备好了