Question

i don't know how to implement a keepalive connection in android http://xmpp.org/extensions/xep-0304.html . I'm using a service with asmack in my app. After two hours the connection break. I use a reconnection function to keep alive but doesnt work

public void reconnect(){
    try{

        connection = Koneksi.getInstance().getConnection();

     }catch(NullPointerException e){

        SharedPreferences pref = getSharedPreferences(PREFS_NAME,MODE_PRIVATE);   
        String username = pref.getString(PREF_USERNAME, null);
        String password = pref.getString(PREF_PASSWORD, null);
        System.out.println("FDATOS EN MYSERVICE " +  username + " " +  username);

        try {
            Koneksi.getInstance().init();
            Koneksi.getInstance().performLogin(username, password);
            Koneksi.getInstance().setStatus(true, "");
           // Koneksi.getInstance().getConnection().getRoster().setSubscriptionMode(SubscriptionMode.manual);
            Presence presence = new Presence(Presence.Type.available);
            presence.setMode(Presence.Mode.available);  
            connection.sendPacket(presence);

        } catch (Exception e2) {
            e2.printStackTrace();

        }

      }

}
Was it helpful?

Solution

Try this way

Add connection listener to your xmmpp connection object

connection.addConnectionListener(new ConnectionListener() {

            @Override
            public void reconnectionSuccessful() {

            }

            @Override
            public void reconnectionFailed(Exception arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public void reconnectingIn(int arg0) {

            }

            @Override
            public void connectionClosedOnError(Exception arg0) {
                reconnect();
            }

            @Override
            public void connectionClosed() {
                reconnect();
            }
        });
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top