2016-09-30 13 views
0

Smackでオンラインになったときにオフラインメッセージを取得しようとしています これは接続コードです。チャットも私はエラーモバイルがオフラインになってからSmack(xmpp)でオフラインメッセージが受信されないときに接続が切断されています

09-30 19:07:20.796 10323-10382/? W/AbstractXMPPConnection: Connection closed with error 
                 javax.net.ssl.SSLException: Read error: ssl=0x60fefe48: 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(OpenSSLSocketImpl.java:690) 
                  at java.io.InputStreamReader.read(InputStreamReader.java:233) 
                  at java.io.BufferedReader.read(BufferedReader.java:325) 
                  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:1164) 
                  at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$300(XMPPTCPConnection.java:944) 
                  at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:959) 
                  at  java.lang.Thread.run(Thread.java:862) 
09-30 19:07:20.796 10323-10382/? D/xmpp: ConnectionClosedOn Error! 
+0

に接続されますとき、これは自動的に再びメッセージを送信します私は切断httpsの後に接続を作ってるんだか、このサンプルを見てみてください。: //github.com/saveendhiman/XMPPSample_Studio – Saveen

答えて

0

は、バックグラウンドサービスへの接続を移動し、接続時間をgittingています...

public void connectConnection() { 
    AsyncTask<Void, Void, Boolean> connectionThread = new AsyncTask<Void, Void, Boolean>() { 

     @Override 
     protected Boolean doInBackground(Void... arg0) { 

      // Create a connection 
      try { 
       connection.connect(); 
       login(); 
       connected = true; 
       scheduleTaskExecutor = Executors.newSingleThreadScheduledExecutor(); 
       scheduleTaskExecutor.scheduleWithFixedDelay(new Runnable() { 
        @Override 
        public void run() { 
         Log.e("xmpp", "inside run()"); 
         Log.d("xmpp", "isconnect: " + connection.isConnected() + " Auth: " + connection.isAuthenticated()); 
         Log.d("xmpp", "getPacketReplyTimeout: "+String.valueOf(connection.getPacketReplyTimeout())); 

         SettingStore ss=new SettingStore(getApplicationContext()); 
         if (ss.getStartChatValue()){ 

          try { 
           Presence presence = new Presence(Presence.Type.available); 
           connection.sendPacket(presence); 
          } catch (SmackException.NotConnectedException e) { 
           e.printStackTrace(); 
          } 

           if (connection.isConnected()) { 
           sendMessagesToServer(); 

          } else { 
           try { 
            connection.connect(); 
            login(); 
           } catch (SmackException e) { 
            e.printStackTrace(); 
           } catch (IOException e) { 
            e.printStackTrace(); 
           } catch (XMPPException e) { 
            e.printStackTrace(); 
           } 

          } 
         } 
         else { 
          disconnectAndStopTimmer(); 
         } 


        } 

       }, 0, 2, TimeUnit.SECONDS); 


      } catch (IOException e) { 
      } catch (SmackException e) { 

      } catch (XMPPException e) { 
      } 

      return null; 
     } 
    }; 
    connectionThread.execute(); 

} 

をもOfflineManager使用していたが、それはゼロメッセージをhowingさでオフラインメッセージが届きませんそれはそう 常に接続されています。 openfireで

は、オフラインメッセージに

サーバー>サーバーの設定]> [オフラインメッセージ後の検索のために

ストアオフラインメッセージを再送信するためのオプションがあります。メッセージはで次回の受信者のログをお届けいたします

をユーザーがXMPP

関連する問題