Openfire 4.3.2 流管理无法正常工作
Posted
技术标签:
【中文标题】Openfire 4.3.2 流管理无法正常工作【英文标题】:Openfire 4.3.2 Stream Managment not Working Propelry 【发布时间】:2019-05-03 12:18:12 【问题描述】:我正在使用 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。 我注意到一件事,如果我没有关闭应用程序只是关闭连接并在重新连接后,一切正常,但如果我关闭应用程序,我不会收到消息。我该如何解决这个问题
【问题讨论】:
【参考方案1】:我认为你的问题可能是这个配置参数或 openfire ghost 会话存在:
xmpp.client.idle 600000(10 分钟)
这是客户端空闲超时,如果服务器没有成功 ping 客户端,客户端将断开连接。您应该重新考虑此参数的值,并将其降低到适合您需要的合理值。对我来说是30秒。在该客户端断开连接后,如果启用了离线消息,所有消息都会进入离线存储。
还有一个keepalive机制的错误。请检查:
https://issues.igniterealtime.org/browse/OF-963
报告了 4.0.3 版本的问题。
【讨论】:
【参考方案2】:我认为有两个可能的原因。 您应该明确做的一件事是在应用程序关闭时立即关闭连接。有一种 onClose 功能。因为连接可能仍然可用一段时间或处于空闲状态。
另一个原因(我不相信),我在我的 openfire 界面中有一个选项,我可以选择如何处理脱机消息。所以你的版本也必须有一个属性。
还有一个keepalive机制的错误。请检查:
https://issues.igniterealtime.org/browse/OF-963
报告了 4.0.3 版本的问题。
【讨论】:
以上是关于Openfire 4.3.2 流管理无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章
带有 Openfire 的 Candy webclient,无法正常工作
Openfire Xmpp Chat 无法在启用 SSL 的情况下工作