关键功能是重新连接机制,这意味着我的应用程序可以在互联网连接丢失时自动重新连接.
这是我的代码片段:
ConnectionConfiguration connConfig = new ConnectionConfiguration(HOST,PORT);connConfig.setSASLAuthenticationEnabled(true);connConfig.setReconnectionAllowed(true);XMPPConnection connection = new XMPPConnection(connConfig);
但是每当我关闭然后打开Wifi时我就会收到此错误:
10-01 21:43:26.942: W/System.err(13695): javax.net.ssl.SSLException: Write error: ssl=0x5a4ad348: I/O error during system call,broken pipe10-01 21:43:27.002: W/System.err(13695): at org.apache.harmony.xnet.provIDer.Jsse.NativeCrypto.SSL_write(Native Method)10-01 21:43:27.012: W/System.err(13695): at org.apache.harmony.xnet.provIDer.Jsse.OpenSSLSocketImpl$SSLOutputStream.write(OpenSSLSocketImpl.java:693)10-01 21:43:27.012: W/System.err(13695): at java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167)10-01 21:43:27.012: W/System.err(13695): at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:158)10-01 21:43:27.012: W/System.err(13695): at java.io.BuffereDWriter.flush(BuffereDWriter.java:124)10-01 21:43:27.012: W/System.err(13695): at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:210)10-01 21:43:27.012: W/System.err(13695): at org.jivesoftware.smack.PacketWriter.accessReconnectionManager manager = ReconnectionManager.getInstanceFor(connection);manager.enableautomaticReconnection();0(PacketWriter.java:42)10-01 21:43:27.012: W/System.err(13695): at org.jivesoftware.smack.PacketWriter.run(PacketWriter.java:78)10-01 21:43:27.092: W/System.err(13695): javax.net.ssl.SSLException: Read error: ssl=0x5a4ad348: I/O error during system call,Connection timed out10-01 21:43:27.092: W/System.err(13695): at org.apache.harmony.xnet.provIDer.Jsse.NativeCrypto.SSL_read(Native Method)10-01 21:43:27.092: W/System.err(13695): at org.apache.harmony.xnet.provIDer.Jsse.OpenSSLSocketImpl$SSLinputStream.read(OpenSSLSocketImpl.java:651)10-01 21:43:27.092: W/System.err(13695): at java.io.inputStreamReader.read(inputStreamReader.java:244)10-01 21:43:27.092: W/System.err(13695): at java.io.BufferedReader.read(BufferedReader.java:310)10-01 21:43:27.092: W/System.err(13695): at org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1496)10-01 21:43:27.092: W/System.err(13695): at org.kxml2.io.KXmlParser.peekType(KXmlParser.java:979)10-01 21:43:27.092: W/System.err(13695): at org.kxml2.io.KXmlParser.next(KXmlParser.java:346)10-01 21:43:27.092: W/System.err(13695): at org.kxml2.io.KXmlParser.next(KXmlParser.java:310)10-01 21:43:27.092: W/System.err(13695): at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:326)10-01 21:43:27.092: W/System.err(13695): at org.jivesoftware.smack.PacketReader.access0(PacketReader.java:44)10-01 21:43:27.092: W/System.err(13695): at org.jivesoftware.smack.PacketReader.run(PacketReader.java:71)
谁能解决这个错误,请帮助我!
解决方法 使用最新的smack API – 我正在使用4.1.0然后设置如下所示的重新连接:
它将自动重新连接,如Here所述
总结以上是内存溢出为你收集整理的android – asmack中的ReconnectionManager全部内容,希望文章能够帮你解决android – asmack中的ReconnectionManager所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)