XMPP Smack4.3.4 android端接入異常問題處理

一.登錄時Too many (20) failed authentications異常

     1.1 異常log

             smack.XMPPException$StreamErrorException:policy-violation You can read more about the meaning of this stream error at http://xmpp.org/rfcs/rfc6120.html#streams-error-conditions
<stream:error><policy-violation xmlns='urn:ietf:params:xml:ns:xmpp-streams'/><text xml:lang='en'>Too many (20) failed authentications from this IP address (::ffff:113.88.132.28).The address will be unblocked at at 01:40:03 25.03.2020 UTC

     1.2解決辦法

           IP被服務端加入黑名單了,需要服務端清理

 

二.Ping時javax.net.ssl.SSLException: Read error異常

     2.1 異常log

            D/SMACK: SENT (0): <iq to='im.demo.aiframe.net' id='UbyV1-113' type='get'><ping xmlns='urn:xmpp:ping'/></iq>
W/AbstractXMPPConnection: Connection XMPPTCPConnection[[email protected]/frame] (0) closed with error
    javax.net.ssl.SSLException: Read error: ssl=0x58c132b0: I/O error during system call, Connection reset by peer
        at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
        at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:689)
        at java.io.InputStreamReader.read(InputStreamReader.java:233)
        at java.io.BufferedReader.read(BufferedReader.java:325)
        at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:42)
        at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1506)
        at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:986)
        at org.kxml2.io.KXmlParser.next(KXmlParser.java:346)
        at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1352)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$1000(XMPPTCPConnection.java:1092)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1112)
        at java.lang.Thread.run(Thread.java:841)
W/PingManager: Exception while pinging server of XMPPTCPConnection[[email protected]/frame] (0)
    java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.java:1992)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2066)
        at java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:388)
        at org.jivesoftware.smack.StanzaCollector.nextResult(StanzaCollector.java:195)
        at org.jivesoftware.smack.StanzaCollector.nextResultOrThrow(StanzaCollector.java:259)
        at org.jivesoftware.smackx.ping.PingManager.ping(PingManager.java:240)
        at org.jivesoftware.smackx.ping.PingManager.pingMyServer(PingManager.java:323)
        at org.jivesoftware.smackx.ping.PingManager.pingMyServer(PingManager.java:304)
        at org.jivesoftware.smackx.ping.PingManager.pingServerIfNecessary(PingManager.java:447)
        at org.jivesoftware.smackx.ping.PingManager$7.run(PingManager.java:478)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:152)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:265)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
        at java.lang.Thread.run(Thread.java:841)
D/SMACK: XMPPConnection closed due to an exception (XMPPTCPConnection[[email protected]/frame] (0))
    javax.net.ssl.SSLException: Read error: ssl=0x58c132b0: I/O error during system call, Connection reset by peer
        at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method)
        at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:689)
        at java.io.InputStreamReader.read(InputStreamReader.java:233)
        at java.io.BufferedReader.read(BufferedReader.java:325)
        at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:42)
        at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1506)
        at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:986)
        at org.kxml2.io.KXmlParser.next(KXmlParser.java:346)
        at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1352)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$1000(XMPPTCPConnection.java:1092)
        at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1112)
        at java.lang.Thread.run(Thread.java:841)

  2.1 解決辦法

     等待補充.....

 

三、登錄時賬號密碼正確,依然提示無效的用戶名或密碼

       原因爲服務端賬號密碼認證部分有緩存導致。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章