Функцията не е внедрена като smack, Openfire

Използвам Openfire 3.9.3 с библиотека aSmack.
Когато се свържа с моя сървър за чат, продължавам да получавам следните регистрационни файлове.
Въпреки че се свързвам успешно със сървъра и мога да разговарям с помощта на моето приложение.

12-31 14:11:53.049: D/SMACK(4613): 02:11:53 PM RCV  (1101270208): <iq type="get" id="130-6586" from="nearbychat.com" to="[email protected]/Smack"><ping xmlns="urn:xmpp:ping"/></iq>

12-31 14:11:53.049: D/SMACK(4613): 02:11:53 PM SENT (1101270208): <iq id="130-6586" to="nearbychat.com" from="[email protected]/Smack" type="error"><error code="501" type="CANCEL"><feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>

Използвам този код за настройка на xmpp връзка

private void setXmppConnection() {
        if (this.XMPP_CONNECTION == null) {
            this.CONN_CONFIG = new ConnectionConfiguration(MyGlobals.HOST,
                    MyGlobals.PORT, MyGlobals.SERVICE);
            this.CONN_CONFIG
                    .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
            this.CONN_CONFIG.setSASLAuthenticationEnabled(false);
            this.XMPP_CONNECTION = new XMPPConnection(this.CONN_CONFIG);
        }
    }

public void connectToChatServer() {
        new AsyncTask<String, Void, Void>() {
            @Override
            protected Void doInBackground(String... params) {

                try {
                    XMPP_CONNECTION.connect();
                    openFireUsername = String.valueOf(sharedPreferences.getInt(
                            "userID", -1));
                    openFirePassword = sharedPreferences.getString("password",null);
                    Log.d(MyGlobals.TAG, "open fire username"+ openFireUsername);
                    Log.d(MyGlobals.TAG, "open fire password"+ openFirePassword);
                    XMPP_CONNECTION.login(openFireUsername, openFirePassword);
                    Presence presence = new Presence(Presence.Type.available);
                    XMPP_CONNECTION.sendPacket(presence);
                    connectedToChatServer = true;
                } catch (XMPPException localXMPPException) {
                    localXMPPException.printStackTrace();
                } catch (Error localError) {
                }
                return null;
            }

        }.execute(null, null, null);
    }

Може ли някой да ми каже защо получавам този регистрационен файл многократно?
Ще повлияят ли тези регистрационни файлове върху производителността на приложението ми, т.е.: консумацията на батерия?
Какво трябва да направя, за да се отърва от тези регистрационни файлове?


person Deepak Rathore    schedule 31.12.2015    source източник


Отговори (2)


Може да се наложи да регистрирате всички доставчици, като използвате класа ProviderManager, предоставен от самата библиотека, преди процеса на влизане.

Надявам се това да работи!

person Pankaj Kumar    schedule 01.01.2016
comment
Здравей @Pankaj Kumar, съжалявам за късния отговор. Можете ли да дадете някакъв кодов фрагмент с помощта на ProviderManager? - person Deepak Rathore; 18.01.2016
comment
Качих настройката на фрагмента за настройка на ProviderManager в тази публикация по-горе. Можете да използвате това вместо това. - person Pankaj Kumar; 26.10.2016

person    schedule
comment
извикайте този метод, преди да създадете връзка със сървъра, базиран на xmpp. - person Pankaj Kumar; 19.01.2016
comment
Това не работи с smack 4.1.7, предоставяйки изключение за това. - person arslan haktic; 22.07.2016