我们正在开发一款具有聊天功能的应用。我们有一个ejabberd(15.02)配置为使用mod_offline_post来使用离线消息钩子并将离线客户端的所有消息转发到我们自己的URL,然后转发到GCM。
然而,在我们开发应用程序时,我们还需要启用XEP-198(流管理)来处理连接丢失。这本身就很好。创建并恢复流,确认消息。
问题是,jabber正在等待一个流恢复,并且没有将任何离线消息转发到离线消息钩子,因此转发到我们的mod和post url。它当然是将它们存储在离线存储器中,当收件人恢复其流时它们会被传送。
有没有办法配置jabber在ejabberd_c2s:fsm_next_state:2517 Waiting for resumption of stream for...
时调用脱机消息钩子?
PS:我们在客户端使用smack来提供流管理
答案 0 :(得分:1)
根据我的理解,从XMPP规范的角度来看,ejabberd的行为是正确的。它正在做正确的事情,在这种情况下不应该将消息转发到离线商店,因为您在技术上并不是脱机。
这不适合进行推送处理。