2016-12-08 6 views
1

私はQuickbloxに関係するアンドロイド向けのアプリを開発中です。メッセージ「チャット接続が切断されました」が表示され続けます。 logcatを読めば、これは私が取得していますものです:Quickbloxチャット接続がアンドロイドでチャットするときにドロップ

12-08 11:15:31.214 13894から14722/com.quickblox.sampleのW/AbstractXMPPConnection:接続がエラー java.net.SocketTimeoutExceptionで閉じます: com.android.org.conscrypt.NativeCrypto.SSL_read(ネイティブメソッド)の を読み取り、com.android.org.conscrypt.OpenSSLSocketImpl $ SSLInputStream.read(OpenSSLSocketImpl.java:705) at java.io.InputStreamReaderで を読み取ります。 read(InputStreamReader.java:233) at java.io.BufferedReader.read(BufferedReader.java:325) at org.jivesoftwar org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515)の でのe.smack.util.ObservableReader.read org.jivesoftware.smack.tcp.XMPPTCPConnection $ PacketReaderでorg.kxml2.io.KXmlParser.next(KXmlParser.java:313) でorg.kxml2.io.KXmlParser.next(KXmlParser.java:349) で 。 org.jivesoftware.smack.tcp.XMPPTCPConnection $ PacketReader.access $ 300(SourceFile:1014) org.jivesoftware.smack.tcp.XMPPTCPConnectionの$$ PacketReader $ 1.run(SourceFile:1029) at java.lang.Thread.run(Thread.java:818) ) 12-15 11:15:31.216 13894-14722/com.quickblox.sample D/SMACK:例外(0)のためXMPPConnectionが閉じました 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:java.net.SocketTimeoutException:読み取りタイムアウト 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:com.android.org.conscrypt.NativeCrypto。 SSL_read(ネイティブメソッド) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:com.android.org.conscrypt.OpenSSLSocketImpl $ SSLInputStream.read(OpenSSLSocketImpl.java:705) 1235 11:15:31.216 13894- 14722/com.quickblox.sample W/System.err:java.io.BufferedReader.read(BufferedReader.java:325) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:org.jivesoftware.smack.util.ObservableReader.read(SourceFile:41) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:org.kxml2.io.KXmlParser.fillBuffer(KXmlParser.java:1515) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System。エラー:org.kxml2.io.KXmlParser.peekType(KXmlParser.java:992) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:org.kxml2.io。 KXmlParser.next(KXmlParser.java:349) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:org.kxml2.io.KXmlParser.next(KXmlParser.java:313) ) 12-08 11:15:31.216 13894-14722/com.quickblox.sample W/System.err:org.jivesoftware.smack.tcp.XMPPTCPConnection $ PacketReader.parsePackets(SourceFile:1240) 12-08 11: 15:31.216 13894-14722 /com.quickblox.sample W/System.err:org.jivesoftware.smack.tcp.XMPPTCPConnection $ PacketReader.access $ 300(SourceFile:1014) 12-08 11:15:31.217 13894-14722/com.quickblox.sample W/System.err:org.jivesoftware.smack.tcp.XMPPTCPConnection $ PacketReader $ 1.run(SourceFile:1029) 12-08 11:15:31.217 13894-13894/com.quickblox.sample I/VerboseQbChatConnectionListener:connectionClosedOnError( ):読み取りタイムアウト 12-08 11:15:31.217 13894-14722/com.quickblox.sample W/System.err:at java.lang.Thread.run(Thread。java:818)

解決策を見つけることができません。

答えて

1

ソケットは、(インターネット上のサーバーに接続するなどの)ネットワークを介して通信するために使用するものです。エラーメッセージは、プログラムがネットワークを介してリモートコンピュータからデータを受信しようとしたが一定時間データが受信されなかったことを意味し、プログラムはデータの受信を待って停止しました。

QuickbloxのデフォルトのSocketTimeOutが30秒であるため、Socket Timeoutを増やすことでこの問題を解決できるコードスニペットがあります。

QBChatService.ConfigurationBuilder chatServiceConfigurationBuilder = new QBChatService.ConfigurationBuilder(); 
chatServiceConfigurationBuilder.setSocketTimeout(180); //Sets chat socket's read timeout in seconds 
chatServiceConfigurationBuilder.setKeepAlive(true); //Sets connection socket's keepAlive option. 
QBChatService.setConfigurationBuilder(chatServiceConfigurationBuilder); 
+0

ありがとう! –

関連する問題