Openfire 聊天意外行为

Openfire chatting unexpected behavior

我们已经使用 Openfire 与 Android 和 iOS 应用程序聊天,之前一切正常,但我们现在在聊天时遇到一些意外行为,比如消息花费更多时间发送和接收。我们的应用程序已上线。

我正在分享 Openfire 服务器调试和错误日志以及一些屏幕截图。我怎样才能找出服务器到底发生了什么问题以及解决这个问题的方法是什么?

同时从服务器获取一些错误日志。

org.jivesoftware.openfire.nio.ConnectionHandler - Closing connection due to error while processing message: <<iqpresence idid='PZzuN-791=''PZzuN-792 '>type<='cget xmlns='http://jabber.org/protocol/caps'' >hash<query xmlns='jabber:iq:roster'>='</query></iq>sha-1' node='<iqhttp://www.igniterealtime.org/projects/smack 'to ='verlivechat.mingletainment.com' id='56-228034331'=' zUcpnM4/q+DDwIoGAIS6ZXa38LA=type'='/>result</'></iq>presence><iq id='PZzuN-832' type='get'><query xmlns='jabber:iq:roster'></query></iq><r xmlns='urn:xmpp:sm:3'/>

以下是 Android 应用程序错误日志:

D/XMPP-MYXMPP: connected 
2018-10-26 15:09:05.962 11103-11291/ W/Roster: Roster not loaded while processing Presence Stanza [to=livechat.xxx.com/5m7mtgx4ap,id=rRwJ2-3,type=error,status=online,prio=24,]
2018-10-26 15:09:05.981 11103-11238/ D/XMPP-MYXMPP: login: 1540546745981
2018-10-26 15:09:05.999 11103-11275/ W/AbstractXMPPConnection: Connection XMPPTCPConnection[not-authenticated] (0) closed with error
    java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1032)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access0(XMPPTCPConnection.java:993)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.run(XMPPTCPConnection.java:1009)
        at java.lang.Thread.run(Thread.java:764)

以下是来自 openfire 服务器的日志

Error Logs

Debug Logs

我通过增加 Roaster 和元数据的缓存解决了这个问题,现在它工作正常。