Openfire 4.3.2流管理不起作用

时间:2019-05-03 12:18:13

标签: xmpp openfire smack

我将openfire 4.3.2用作XMPP聊天服务器,我的问题是当我突然关闭该应用程序时,几秒钟后,当我再次打开该应用程序时,我没有收到这些消息(在那几个中发送关闭我的应用的秒数)这是服务器的属性。

httpbind.CORS.domains   *
httpbind.CORS.enabled   true
httpbind.enabled    true
httpbind.forwarded.enabled  false
log.debug.enabled   true
passwordKey     hidden
plugin.callback_on_offline.debug    true
plugin.callback_on_offline.send_body    true
plugin.callback_on_offline.token    884d8014-006f-4495-8290-7b53801c8f89
plugin.callback_on_offline.url  http://ec2-*-***-***-***.compute-1.amazonaws.com:3000/user/offline/message
plugin.userservice.secret   WjVSdHFw
provider.admin.className    org.jivesoftware.openfire.admin.DefaultAdminProvider
provider.auth.className     org.jivesoftware.openfire.auth.DefaultAuthProvider
provider.group.className    org.jivesoftware.openfire.group.DefaultGroupProvider
provider.lockout.className  org.jivesoftware.openfire.lockout.DefaultLockOutProvider
provider.securityAudit.className    org.jivesoftware.openfire.security.DefaultSecurityAuditProvider
provider.user.className     org.jivesoftware.openfire.user.DefaultUserProvider
provider.vcard.className    org.jivesoftware.openfire.vcard.DefaultVCardProvider
register.inband     true
register.password   hidden
sasl.mechs.00002    PLAIN
sasl.scram-sha-1.iteration-count    4096
stream.management.active     true
update.lastCheck    1556532896226
xmpp.auth.anonymous     true
xmpp.client.idle    600000
xmpp.client.idle.ping   true
xmpp.domain     18.224.19.131
xmpp.filetransfer.enabled   true
xmpp.server.session.allowmultiple   false
xmpp.server.session.idle    600000
xmpp.server.session.timeout     600000
xmpp.session.conflict-limit     1
xmpp.socket.ssl.active  true 

我在我的android代码中使用Smack 4.3.2。 我注意到一件事,如果我不关闭应用程序,只是关闭连接,重新连接后一切正常,但是如果我关闭应用程序,则不会收到消息。我该如何解决这个问题

2 个答案:

答案 0 :(得分:0)

我认为有两个可能的原因。 您应该明确地做的一件事就是在应用程序关闭时立即关闭连接。有一种onClose函数。由于连接可能仍然可用或处于空闲状态。

另一个原因(我不相信),我在openfire界面中有一个选项,可以选择如何处理脱机消息。因此,您的版本还必须有一个属性。

答案 1 :(得分:0)

我认为您的问题可能是此配置参数或存在openfire鬼会话:

  

xmpp.client.idle 600000(10分钟)

这是客户端空闲超时,如果服务器未成功ping通客户端,则客户端将断开连接。您应该重新考虑此参数的值,并将其降低到适合您需要的合理值。对我来说是30秒。该客户端断开连接后,如果启用了脱机消息,则所有消息都将进入脱机存储。

还有一个带有keepalive机制的bug。请检查以下内容:

https://issues.igniterealtime.org/browse/OF-963

报告了版本4.0.3的问题。