4

I am working on a mobile chat application, last few days I started facing issues with connection (my case is first time my connection works fine but when my app got disconnected (by loosing net connection or wifi turned off or poor network) then my app is reconnected but not able to send messages but at the same time app can receive message): For reconnection I am using reconnectionmanager

I am using smack4.1 library.

Error Details: Client is not or no longer connected

Thanks my connection and reconnection code is -

XMPPTCPConnectionConfiguration.Builder connConfig = XMPPTCPConnectionConfiguration
                        .builder();
                connConfig
                        .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
                connConfig.setUsernameAndPassword(user, pass);
                connConfig.setServiceName(SERVICE_NAME);
                connConfig.setHost(SERVER_HOST);
                connConfig.setPort(SERVER_PORT);
                connConfig.setDebuggerEnabled(true);
                connConfig.setConnectTimeout(25000);
                XMPPTCPConnectionConfiguration configuration = connConfig.build();
                connection = new XMPPTCPConnection(configuration);
                connection.setUseStreamManagement(true);
                connection.setUseStreamManagementResumption(true);
                connection.setReplyToUnknownIq(true);
                connection.setPacketReplyTimeout(25000);
                ReconnectionManager manager = ReconnectionManager.getInstanceFor(connection);
                manager.setFixedDelay(10);
                ReconnectionManager.setDefaultReconnectionPolicy                  (ReconnectionManager.ReconnectionPolicy.FIXED_DELAY);
                manager.enableAutomaticReconnection();
                ReconnectionManager.setEnabledPerDefault(true);

                connection.addConnectionListener(new ConnectionListener() {
                    @Override
                    public void connected(XMPPConnection xmppConnection) {

                        IsConnected = true;
                    }

                    @Override
                    public void authenticated(XMPPConnection xmppConnection, boolean bt) {}

                    @Override
                    public void connectionClosed() {


                        IsConnected = false;
                    }

                    @Override
                    public void connectionClosedOnError(Exception e) {

                        IsConnected = false;

                    }

                    @Override
                    public void reconnectionSuccessful() {
                        IsConnected = true;
                                         }

                    @Override
                    public void reconnectingIn(int i) {
                 }

                    @Override
                    public void reconnectionFailed(Exception e) {
                                                  }
                });


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

For sending message to user connection.sendStanza(messsageObj);

Sunil Singh
  • 538
  • 3
  • 12

0 Answers0