2016-09-05 2 views
0

Я использую smack 4.1.7 как свою библиотеку xmpp на Android и openfire как мой сервер. Я получаю исключение, когда я пытаюсь принудительно переподключиться, как только устройство выйдет из режима полета в самолете. В обычном рабочем процессе я не получаю это исключение. Я хочу, чтобы мое приложение поддерживало автономный режим, поэтому я должен убедиться, что происходит плавный переход из автономного режима в онлайн. Я использую режим самолета, чтобы проверить этот сценарий.Smack4.1.7 Ответа не получено в течение таймаута ответа

Я использую диспетчер пересоединения, чтобы обрабатывать повторное соединение с фиксированной задержкой в ​​20 секунд. Я принудительно переподключаю, потому что я не хочу, чтобы пользователь подождал 20 секунд для повторного соединения xmpp, если пользователь уже находится в приложении. Вот почему я полагаюсь на диспетчер пересоединения для повторного подключения только тогда, когда приложение находится в фоновом режиме. Надеюсь, это поможет понять, что я пытаюсь сделать здесь.

Я отправляю трассировки стека с режимом отладки Смак включена на Android:

07-26 13:55:45.154 com.myapp.xmpptest I/XmppService: Network state changed. Network connected. 
07-26 13:55:45.154 com.myapp.xmpptest I/XmppService: Before xmppConnection connect..... 
07-26 13:55:45.174 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 14 

07-26 13:55:45.324 com.myapp.xmpptest D/SMACK: SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 

07-26 13:55:45.404 com.myapp.xmpptest D/SMACK: RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="bde2ec9" xml:lang="en" version="1.0"> 

07-26 13:55:45.484 com.myapp.xmpptest D/SMACK: RECV (0): <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms></stream:features> 

07-26 13:55:45.484 com.myapp.xmpptest D/SMACK: SENT (0): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'></starttls> 
07-26 13:55:45.564 com.myapp.xmpptest D/SMACK: RECV (0): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 
07-26 13:55:46.174 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 13 

07-26 13:55:46.194 com.myapp.xmpptest D/SMACK: SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 

07-26 13:55:46.274 com.myapp.xmpptest D/SMACK: RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="bde2ec9" xml:lang="en" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/></stream:features> 

07-26 13:55:46.284 com.myapp.xmpptest D/xmppTest: XmppConnectionListener connectionConnected() 
07-26 13:55:46.284 com.myapp.xmpptest D/SMACK: XMPPConnection connected (0) 

07-26 13:55:46.284 com.myapp.xmpptest D/SMACK: SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>HJKSHGFJHJGKHDJHGJEHJKRHGJKFDHGhjshjkghruiehskrjgbjkeh5j4568o gjkfhdsgh589wwghjfdghsuHJKSHFIREHGHRUEIghgfhjdgsu87489YUFSfh483fhj==</auth> 

07-26 13:55:47.174 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 12 
07-26 13:55:47.174 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 0 

07-26 13:55:51.293 com.myapp.xmpptest W/System.err: org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). Used filter: No filter used or filter was 'null'. 

07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java: 250) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnect ion.java:374) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :456) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :414) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection. java:863) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.ja va:364) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at com.myapp.xmpp.XmppService.connectAndAuthenticate(XmppService.java:492) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at com.myapp.xmpp.XmppService$2.run(XmppService.java:195) 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 
07-26 13:55:51.293 com.myapp.xmpptest I/XmppService: Before xmppConnection login..... 

07-26 13:55:51.293 com.myapp.xmpptest W/AbstractXMPPConnection: Connection closed with error 
                                                                            javax.net.ssl.SSLException: Read error: ssl=0x9abd4400: I/O error during system call, Connection timed out 
                                                                                at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
                                                                                at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketIm pl.java:753) 
                                                                                at java.io.InputStreamReader.read(InputStreamReader.java:231) 
                                                                                at java.io.BufferedReader.read(BufferedReader.java:325) 
                                                                                at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
                                                                                at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
                                                                                at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
                                                                                at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
                                                                                at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
                                                                                at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:1173) 
                                                                                at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:952) 
                                                                                at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:967) 
                                                                                at java.lang.Thread.run(Thread.java:818) 

07-26 13:55:51.293 com.myapp.xmpptest D/xmppTest: XmppConnectionListener connectionClosedOnError() 
07-26 13:55:51.293 com.myapp.xmpptest W/System.err: javax.net.ssl.SSLException: Read error: ssl=0x9abd4400: I/O error during system call, Connection timed out 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketIm pl.java:753) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.io.InputStreamReader.read(InputStreamReader.java:231) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.io.BufferedReader.read(BufferedReader.java:325) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:1173) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:952) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:967) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 

07-26 13:55:51.303 com.myapp.xmpptest D/SMACK: XMPPConnection closed due to an exception (0) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err: javax.net.ssl.SSLException: Read error: ssl=0x9abd4400: I/O error during system call, Connection timed out 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketIm pl.java:753) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.io.InputStreamReader.read(InputStreamReader.java:231) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.io.BufferedReader.read(BufferedReader.java:325) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPC onnection.java:1173) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPCon nection.java:952) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnecti on.java:967) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 

07-26 13:55:51.303 com.myapp.xmpptest W/System.err: org.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected. 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExce ptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1248) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfApprop riate(XMPPTCPConnection.java:345) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :451) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :414) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.ReconnectionManager$2.run(ReconnectionManager.java:248) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 
07-26 13:55:51.303 com.myapp.xmpptest D/xmppTest: XmppConnectionListener reconnectionFailed() 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err: org.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected. 
07-26 13:55:51.303 com.myapp.xmpptest D/SMACK: Reconnection failed due to an exception (0) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExce ptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1248) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err: at org.jivesoftware.smack.SmackException$NotConnectedException: Client is not, or no longer, connected. 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketWriter.throwNotConnectedExce ptionIfDoneAndResumptionNotPossible(XMPPTCPConnection.java:1248) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfApprop riate(XMPPTCPConnection.java:345) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :451) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :414) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.ReconnectionManager$2.run(ReconnectionManager.java:248) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 

07-26 13:55:51.303 com.myapp.xmpptest W/System.err: org.jivesoftware.smack.tcp.XMPPTCPConnection.throwNotConnectedExceptionIfApprop riate(XMPPTCPConnection.java:345) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java :451) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.myapp.xmpp.XmppService.connectAndAuthenticate(XmppService.java:538) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at com.myapp.xmpp.XmppService$2.run(XmppService.java:195) 
07-26 13:55:51.303 com.myapp.xmpptest W/System.err:     at java.lang.Thread.run(Thread.java:818) 
  
07-26 13:55:52.303 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 19 
07-26 13:55:53.303 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 18 
07-26 13:55:54.303 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 17 
07-26 13:55:55.303 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 16 
07-26 13:55:56.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 15 
07-26 13:55:57.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 14 
07-26 13:55:58.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 13 
07-26 13:55:59.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 12 
07-26 13:56:00.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 11 
07-26 13:56:01.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 10 
07-26 13:56:02.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 9 
07-26 13:56:03.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 8 
07-26 13:56:04.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 7 
07-26 13:56:05.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 6 
07-26 13:56:06.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 5 
07-26 13:56:07.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 4 
07-26 13:56:08.323 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 3 
07-26 13:56:09.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 2 
07-26 13:56:10.313 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 1 
07-26 13:56:11.323 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 0 
07-26 13:56:11.323 com.myapp.xmpptest D/SMACK: XMPPConnection (0) will reconnect in 0 
  
07-26 13:56:11.373 com.myapp.xmpptest D/SMACK: SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 

07-26 13:56:11.403 com.myapp.xmpptest D/SMACK: RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="8dbb465e" xml:lang="en" version="1.0"> 

07-26 13:56:11.433 com.myapp.xmpptest D/SMACK: RECV (0): <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms></stream:features> 

07-26 13:56:11.443 com.myapp.xmpptest D/SMACK: SENT (0): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'></starttls> 
07-26 13:56:11.473 com.myapp.xmpptest D/SMACK: RECV (0): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 

07-26 13:56:11.963 com.myapp.xmpptest D/SMACK: SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 

07-26 13:56:12.003 com.myapp.xmpptest D/SMACK: RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="8dbb465e" xml:lang="en" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanis ms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/></stream:features> 

07-26 13:56:12.003 com.myapp.xmpptest D/xmppTest: XmppConnectionListener connectionConnected() 
07-26 13:56:12.003 com.myapp.xmpptest D/SMACK: XMPPConnection connected (0) 

07-26 13:56:12.003 com.myapp.xmpptest D/SMACK: SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>HJKSHGFJHJGKHDJHGJEHJKRHGJKFDHGhjshjkghruiehskrjgbjkeh5j4568o gjkfhdsgh589wwghjfdghsuHJKSHFIREHGHRUEIghgfhjdgsu87489YUFSfh483fhj==</auth> 

07-26 13:56:12.223 com.myapp.xmpptest D/SMACK: RECV (0): <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/> 

07-26 13:56:12.223 com.myapp.xmpptest D/SMACK: SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' id='8dbb465e' xml:lang='en'> 

07-26 13:56:12.253 com.myapp.xmpptest D/SMACK: RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="8dbb465e" xml:lang="en" version="1.0"><stream:features><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features> 

07-26 13:56:12.253 com.myapp.xmpptest D/SMACK: SENT (0): <iq id='H0v5c-22' type='set'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>d73d639de6435579</resource>< /bind></iq> 

07-26 13:56:12.283 com.myapp.xmpptest D/SMACK: RECV (0): <iq type="result" id="H0v5c-22" to="myapp.com/8dbb465e"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>[email protected]/d73d639de6435579</jid></bind></iq> 

07-26 13:56:12.293 com.myapp.xmpptest D/SMACK: SENT (0): <iq id='H0v5c-24' type='set'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq> 
07-26 13:56:12.323 com.myapp.xmpptest D/SMACK: RECV (0): <iq type="result" id="H0v5c-24" to="[email protected]/d73d639de6435579"/> 
07-26 13:56:12.323 com.myapp.xmpptest D/SMACK: User logged (0):[email protected]:5222/d73d639de6435579 
07-26 13:56:12.323 com.myapp.xmpptest D/xmppTest: XmppConnectionListener authenticated(). resumed : false 
07-26 13:56:12.323 com.myapp.xmpptest D/xmppTest: joining control room 
07-26 13:56:12.323 com.myapp.xmpptest D/SMACK: XMPPConnection authenticated (0) 
07-26 13:56:12.323 com.myapp.xmpptest D/xmppTest: XmppConnectionListener reconnectionSuccessful() 

07-26 13:56:12.323 com.myapp.xmpptest D/SMACK: SENT (0): <presence id='H0v5c-26'><c xmlns='http://jabber.org/protocol/caps' hash='sha-1' node='http://www.igniterealtime.org/projects/smack' ver='zIfK69gJkJ5OCxMILmZOsZ9HBlU='/></presence> 
07-26 13:56:12.323 com.myapp.xmpptest D/SMACK: SENT (0): <presenceto='[email protected]/[email protected]' id='H0v5c-27' type='unavailable'></presence> 

Если я правильно понял из бревен, я получаю исключение при попытке немедленно восстановить в случае изменения сети, когда устройство подключается к Интернету из режима самолета. Однако в конечном итоге он подключается через диспетчер пересоединения. Код, который я использую для запуска XMPP подключения и Войти следующим образом:

// The network monitor 

    private BroadcastReceiver networkMonitor = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      if (isOnline && !Utilities.isOnline(AbstractActivity.this)) { 
       isOnline = false; 
      } else if (!isOnline && Utilities.isOnline(AbstractActivity.this)) { 
       // Trigger only when going from offline to online 
       isOnline = Utilities.isOnline(AbstractActivity.this); 

       // Re-establish the xmpp connection if it was disconnected 
       if (isOnline) { 
        connectAndAuthenticate(); 
       } 
      } 
     } 
    }; 

    public void connectAndAuthenticate() { 
     if(xmppConnection==null){ 
     XMPPTCPConnectionConfiguration.Builder builder = XMPPTCPConnectionConfiguration.builder() 
                         .setUsernameAndPassword(hashedUserName, getPassword()) 
                         .setServiceName(serviceName) 
                         .setHost(getCoreServer()) 
                         .setSendPresence(true) 
                         .setSecurityMode(ConnectionConfiguration.SecurityMode.required) 
                         .setPort(Integer.parseInt(port)) 
                         .setResource(getDeviceID()); 
      if (BuildConfig.DEBUG) { 
      builder.setDebuggerEnabled(true); 
      } 

      XMPPTCPConnectionConfiguration config = builder.build(); 

      xmppConnection = new MVXMPPTCPConnection(config); 

      // Disable the roster 
      Roster.getInstanceFor(xmppConnection).setRosterLoadedAtLogin(false); 

      ReconnectionManager reconnectionManager = ReconnectionManager.getInstanceFor(xmppConnection); 
      reconnectionManager.enableAutomaticReconnection(); 
      reconnectionManager.setReconnectionPolicy(ReconnectionManager.ReconnectionPolic y.FIXED_DELAY); 
      reconnectionManager.setFixedDelay(20); 

      PingManager pingManager = PingManager.getInstanceFor(xmppConnection); 
      pingManager.registerPingFailedListener(this); 
      pingManager.setPingInterval(60); 

      // Instantiates a ChatStateManager. 
      ChatStateManager.getInstance(xmppConnection); 
    } 

     // connect 
     try { 
      Log.i(TAG, "Before xmppConnection connect....."); 
      xmppConnection.connect(); 
      Log.i(TAG, "After xmppConnection connect....."); 
     } catch (SmackException.AlreadyConnectedException e) { 
      e.printStackTrace(); 
     } catch (SmackException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (XMPPException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 


     // login 
     try { 
      Log.i(TAG, "Before xmppConnection login....."); 
      xmppConnection.login(hashedUserName, getPassword(), getDeviceID()); 
      Log.i(TAG, "After xmppConnection login....."); 
      // return 
     } catch (SmackException.AlreadyLoggedInException e) { 
      e.printStackTrace(); 
     } catch (SmackException.ConnectionException e) { 
      e.printStackTrace(); 
     } catch (XMPPException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Я получаю много этих ошибок. Кто-нибудь может помочь мне здесь. Я много искал в google с едва ли результатом. Я также опубликовал эту проблему в сообществе поддержки Smack, но пока не слышал от кого-то еще.

PS: Я исчерпал количество строк, которые я могу добавить в части тела здесь, поэтому я отправляю журналы журналов openfire в качестве ответа, поскольку я не знаю, как включить все в надлежащем формате, не разбивая их таким образом , Я прошу прощения за это.

+0

, так как с помощью диспетчера пересоединения, почему вы объясняете логин, а затем при изменении соединения? менеджер пересоединения не будет обрабатывать это? – Farhan

+0

Менеджер пересоединения совершает повторное подключение каждые 20 секунд. Когда пользователь находится в приложении, я не хочу, чтобы пользователь ждал 20 секунд, пока приложение не вышло в сеть, поэтому я пытаюсь подключиться, как только узнаю, что установлено интернет-соединение. Я полагаюсь на менеджера пересоединения, чтобы снова подключиться, пока приложение находится в фоновом режиме. Благодарю. – rbing

ответ

0

Логи с сервера OpenFire:

2016.08.24 07:24:30 org.jivesoftware.openfire.nio.ConnectionHandler - ConnectionHandler reports IOException for session: (SOCKET, R: /70.198.72.125:5004, L: /172.16.23.40:5222, S: 0.0.0.0/0.0.0.0:5222) 
javax.net.ssl.SSLHandshakeException: SSL handshake failed. 
at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416) 
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) 
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53) 
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648) 
at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived (AbstractIoFilterChain.java:499) 
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) 
at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(Abstra ctIoFilterChain.java:293) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.j ava:228) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcesso r.java:198) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(SocketIoProce ssor.java:45) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:485) 
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 
at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(Unknown Source) 
at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) 
at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) 
at javax.net.ssl.SSLEngine.unwrap(Unknown Source) 
at org.apache.mina.filter.support.SSLHandler.unwrap0(SSLHandler.java:668) 
at org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:624) 
at org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:503) 
at org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306) 
at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392) 
... 14 more 
2016.08.24 07:24:56 org.jivesoftware.openfire.nio.ConnectionHandler - ConnectionHandler reports IOException for session: (SOCKET, R: /70.198.72.125:5016, L: /172.16.23.40:5222, S: 0.0.0.0/0.0.0.0:5222) 
javax.net.ssl.SSLHandshakeException: SSL handshake failed. 
at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:416) 
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) 
at org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilt erChain.java:53) 
at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceive d(AbstractIoFilterChain.java:648) 
at org.apache.mina.common.support.AbstractIoFilterChain$HeadFilter.messageReceived (AbstractIoFilterChain.java:499) 
at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(Ab stractIoFilterChain.java:299) 
at org.apache.mina.common.support.AbstractIoFilterChain.fireMessageReceived(Abstra ctIoFilterChain.java:293) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.read(SocketIoProcessor.j ava:228) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.process(SocketIoProcesso r.java:198) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor.access$400(SocketIoProce ssor.java:45) 
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProce ssor.java:485) 
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: javax.net.ssl.SSLException: Unsupported record version Unknown-97.117 
at sun.security.ssl.InputRecord.checkRecordVersion(Unknown Source) 
at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(Unknown Source) 
at sun.security.ssl.SSLEngineImpl.readNetRecord(Unknown Source) 
at sun.security.ssl.SSLEngineImpl.unwrap(Unknown Source) 
at javax.net.ssl.SSLEngine.unwrap(Unknown Source) 
at org.apache.mina.filter.support.SSLHandler.unwrap0(SSLHandler.java:668) 
at org.apache.mina.filter.support.SSLHandler.unwrapHandshake(SSLHandler.java:624) 
at org.apache.mina.filter.support.SSLHandler.handshake(SSLHandler.java:503) 
at org.apache.mina.filter.support.SSLHandler.messageReceived(SSLHandler.java:306) 
at org.apache.mina.filter.SSLFilter.messageReceived(SSLFilter.java:392) 
... 14 more 

Пожалуйста, дайте мне знать, если требуется дополнительная информация с моей стороны.

Обновление: Вот еще несколько журналов на стороне клиента, которые могут предоставить дополнительную информацию.

09-14 02:09:07.130 10994 12986 D SMACK : SENT (0): <iq to='[email protected]' id='JQYId-1396' type='get'><query xmlns='http://jabber.org/protocol/muc#owner'></query></iq> 
09-14 02:09:07.230 10994 12987 D SMACK : RECV (0): <iq type="error" id="JQYId-1396" from="[email protected]" to="[email protected]/d73d639de6435579"><query xmlns="http://jabber.org/protocol/muc#owner"/><error code="403" type="auth"><forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq> 

09-14 02:09:07.250 10994 11433 D SMACK : XMPPConnection reconnected (0) 

09-14 02:09:08.960 10994 10994 W ResourcesManager: getTopLevelResources: /data/app/com.myapp.xmpptest-1/base.apk/1.0 running in com.myapp.xmpptest rsrc of package null 
09-14 02:09:09.180 10994 10994 D myapp : getApplicationPackage : com.myapp.xmpptest 
09-14 02:09:09.210 10994 10994 I XmppService: UserName from preferences : [email protected] 

09-14 02:09:09.220 10994 13097 I XmppService: Before xmppConnection connect..... 
09-14 02:09:09.220 10994 13097 I XmppService: Before xmppConnection login..... 

09-14 02:09:10.560 10994 10994 I Choreographer: Skipped 74 frames! The application may be doing too much work on its main thread. 
09-14 02:09:11.070 10994 10994 I Timeline: Timeline: Activity_idle id: [email protected] time:5117900 
09-14 02:09:28.900 10994 10994 V ActivityThread: updateVisibility : ActivityRecord{fe7fff6 [email protected] {com.myapp.xmpptest/com.myapp.xmpptest.DashFragmentActivity}} show : false 

09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: Connection closed with error 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: javax.net.ssl.SSLException: Read error: ssl=0x9bf6cd80: I/O error during system call, Connection timed out 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:811) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at java.io.InputStreamReader.read(InputStreamReader.java:233) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at java.io.BufferedReader.read(BufferedReader.java:325) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1173) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) 
09-14 02:09:46.200 10994 12987 W AbstractXMPPConnection: at java.lang.Thread.run(Thread.java:818) 

09-14 02:09:46.200 10994 12987 D myapp : XmppConnectionListener connectionClosedOnError() 

09-14 02:09:46.200 10994 12987 W System.err: javax.net.ssl.SSLException: Read error: ssl=0x9bf6cd80: I/O error during system call, Connection timed out 
09-14 02:09:46.200 10994 12987 W System.err: at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
09-14 02:09:46.200 10994 12987 W System.err: at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:811) 
09-14 02:09:46.200 10994 12987 W System.err: at java.io.InputStreamReader.read(InputStreamReader.java:233) 
09-14 02:09:46.200 10994 12987 W System.err: at java.io.BufferedReader.read(BufferedReader.java:325) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1173) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) 
09-14 02:09:46.200 10994 12987 W System.err: at java.lang.Thread.run(Thread.java:818) 

09-14 02:09:46.200 10994 12987 D SMACK : XMPPConnection closed due to an exception (0) 

09-14 02:09:46.200 10994 12987 W System.err: javax.net.ssl.SSLException: Read error: ssl=0x9bf6cd80: I/O error during system call, Connection timed out 
09-14 02:09:46.200 10994 12987 W System.err: at com.android.org.conscrypt.NativeCrypto.SSL_read(Native Method) 
09-14 02:09:46.200 10994 12987 W System.err: at com.android.org.conscrypt.OpenSSLSocketImpl$SSLInputStream.read(OpenSSLSocketImpl.java:811) 
09-14 02:09:46.200 10994 12987 W System.err: at java.io.InputStreamReader.read(InputStreamReader.java:233) 
09-14 02:09:46.200 10994 12987 W System.err: at java.io.BufferedReader.read(BufferedReader.java:325) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.util.ObservableReader.read(ObservableReader.java:41) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.next(KXmlParser.java:349) 
09-14 02:09:46.200 10994 12987 W System.err: at org.kxml2.io.KXmlParser.next(KXmlParser.java:313) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1173) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:952) 
09-14 02:09:46.200 10994 12987 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:967) 
09-14 02:09:46.200 10994 12987 W System.err: at java.lang.Thread.run(Thread.java:818) 

09-14 02:09:47.320 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 19 
09-14 02:09:48.360 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 18 
09-14 02:09:49.400 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 17 

09-14 02:09:50.170 10994 10994 W ResourcesManager: getTopLevelResources: /data/app/com.myapp.xmpptest-1/base.apk/1.0 running in com.myapp.xmpptest rsrc of package null 
09-14 02:09:50.400 10994 10994 D myapp : getApplicationPackage : com.myapp.xmpptest 
09-14 02:09:50.430 10994 10994 I XmppService: UserName from preferences : [email protected] 

09-14 02:09:50.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 16 
09-14 02:09:50.440 10994 14662 I XmppService: Before xmppConnection connect..... 
09-14 02:09:51.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 15 
09-14 02:09:52.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 14 
09-14 02:09:52.460 10994 10994 I Choreographer: Skipped 115 frames! The application may be doing too much work on its main thread. 
09-14 02:09:53.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 13 

09-14 02:09:53.500 10994 10994 I Timeline: Timeline: Activity_idle id: [email protected] time:5160339 

09-14 02:09:53.680 10994 14774 D SMACK : SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 
09-14 02:09:53.740 10994 14775 D SMACK : RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="b894b7e" xml:lang="en" version="1.0"> 
09-14 02:09:53.800 10994 14775 D SMACK : RECV (0): <stream:features><starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls"><required/></starttls><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms></stream:features> 

09-14 02:09:53.800 10994 14774 D SMACK : SENT (0): <starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'></starttls> 
09-14 02:09:53.870 10994 14775 D SMACK : RECV (0): <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls"/> 

09-14 02:09:54.250 10994 14774 D SMACK : SENT (0): <stream:stream xmlns='jabber:client' to='myapp.com' xmlns:stream='http://etherx.jabber.org/streams' version='1.0' from='[email protected]' xml:lang='en'> 
09-14 02:09:54.300 10994 14775 D SMACK : RECV (0): <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" from="myapp.com" id="b894b7e" xml:lang="en" version="1.0"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism></mechanisms><compression xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><auth xmlns="http://jabber.org/features/iq-auth"/></stream:features> 

09-14 02:09:54.310 10994 14662 D myapp : XmppConnectionListener connectionConnected() 

09-14 02:09:54.310 10994 14662 D SMACK : XMPPConnection connected (0) 
09-14 02:09:54.330 10994 14774 D SMACK : SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>lkdhfgkhfdltsyireghjHASHKhfhioqethrh275984758hgjksdhg894q39kHKHIG89Y5HDFJKGNJKSY4E893HKJFHDUYST4HJHWA7389J5KLHFH97jkj97uotigdkhgfd8976i3qkH9786OI45H6TJKHIA7OTI3I4WHTLIURFUIY9==</auth> 

09-14 02:09:54.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 12 
09-14 02:09:54.440 10994 14484 D SMACK : XMPPConnection (0) will reconnect in 0 

09-14 02:09:59.380 10994 14774 D SMACK : SENT (0): <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>lkdhfgkhfdltsyireghjHASHKhfhioqethrh275984758hgjksdhg894q39kHKHIG89Y5HDFJKGNJKSY4E893HKJFHDUYST4HJHWA7389J5KLHFH97jkj97uotigdkhgfd8976i3qkH9786OI45H6TJKHIA7OTI3I4WHTLIURFUIY9==</auth> 

09-14 02:09:59.380 10994 14662 W System.err: org.jivesoftware.smack.SmackException$NoResponseException: No response received within reply timeout. Timeout was 5000ms (~5s). Used filter: No filter used or filter was 'null'. 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:250) 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection.loginNonAnonymously(XMPPTCPConnection.java:374) 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:456) 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.AbstractXMPPConnection.login(AbstractXMPPConnection.java:414) 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:863) 
09-14 02:09:59.390 10994 14662 W System.err: at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:364) 
09-14 02:09:59.390 10994 14662 W System.err: at com.myapp.xmpp.XmppService.connectAndAuthenticate(XmppService.java:591) 
09-14 02:09:59.390 10994 14662 W System.err: at com.myapp.xmpp.XmppService$2.run(XmppService.java:217) 
09-14 02:09:59.390 10994 14662 W System.err: at java.lang.Thread.run(Thread.java:818) 
09-14 02:09:59.410 10994 14662 D Utilities: Xmpp Log Files directory created : true 
09-14 02:09:59.800 10994 14662 D Utilities: ~~~~~~~~~~~~~~~~~~~Log file saved. returning~~~~~~~~~~~~~~ 
09-14 02:09:59.800 10994 14662 I XmppService: Before xmppConnection login..... 

Похоже, что клиент никогда не получает ответа на строфу «auth». Изучив код в библиотеке smack, я думаю, что код ниже в методе 'connectInternal() в' XMPPTCPConnection.java 'может вызвать эту ошибку. Я думаю, что когда метод connect все еще находится в процессе установления связи, вызывается логин, который может быть запутанным на сервере. Должна ли быть какая-то задержка до того, как мы позвоним логину, пока процесс рукопожатия не будет завершен? Если да, то как я могу исправить эту проблему? Если нет, то что может вызвать ошибку таймаута?

Спасибо.

0

Исключение на стороне сервера очень распространено в журналах производства, когда вы обслуживаете мобильных клиентов. В чём четко говорится, что на мобильных устройствах наша сеть продолжает переключаться, и она отличается от настольного LAN/WiFi-соединения, которое часто не связано/отключается.

Так что ваш конкретный случай кажется одним, и вы можете контролировать это с помощью политики повторного подключения, которую, я считаю, вы уже делаете.

+0

Большое вам спасибо за ответ. Я думал, что никто не поможет мне здесь :). В вашем ответе возникают некоторые сомнения в отношении журналов на стороне сервера, но я все еще не понимаю, что вызывает исключения таймаута. «Ответ не получен в течение таймаута ответа». Тайм-аут составлял 5000 мс (~ 5 с). Использованный фильтр: фильтр не использовался или фильтр был «нулевым». на стороне клиента. Я добавляю последние журналы клиентской стороны после регистрации сервера выше. Я был бы очень признателен, если бы вы могли помочь мне здесь. Благодарю. – rbing

+0

Вы проверяете, правильно ли подключено устройство к Wi-Fi или данным. Использование connectivitymanager, если оно связано или нет? –

+0

Да Я пытаюсь подключиться к сетиМонитор, который контролирует сетевое подключение и прослушивает android.net.conn.CONNECTIVITY_CHANGE и соответствует определению, указанному выше. Должен ли я проверить что-нибудь еще? благодаря – rbing

Смежные вопросы