2015-12-31 3 views
0

Я использую Openfire 3.9.3 с библиотекой aSmack.
Когда я подключаюсь к моему серверу чата, я продолжаю получать следующие журналы.
Хотя я успешно подключаюсь к серверу и могу общаться с использованием моего приложения.Функция не реализована asmack, Openfire

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); 
    } 

Может кто-нибудь сказать мне, почему я получаю этот журнал неоднократно?
Будут ли эти журналы влиять на производительность моего приложения, т. Е .: расход батареи?
Что мне делать, чтобы избавиться от этих журналов?

ответ

0

Возможно, вам потребуется зарегистрировать всех поставщиков, используя класс ProviderManager, предоставленный самой библиотекой, перед процессом входа в систему.

Надеюсь, что это сработает!

+0

Hi @Pankaj Kumar, извините за последнее время ответ. Можете ли вы дать фрагмент кода с помощью ProviderManager? –

+0

Я загрузил установку установочного фрагмента ProviderManager в этом сообщении выше. Вы можете использовать это вместо этого. –

1
public static void registerXmppProviders(){ 
     ProviderManager providerManager = ProviderManager.getInstance(); 
     providerManager.addIQProvider("query", "jabber:iq:private", new PrivateDataManager.PrivateDataIQProvider()); 
     ProviderManager.getInstance().addIQProvider("query","http://jabber.org/protocol/bytestreams", new BytestreamsProvider()); 
     ProviderManager.getInstance().addIQProvider("query","http://jabber.org/protocol/disco#items", new DiscoverItemsProvider()); 
     ProviderManager.getInstance().addIQProvider("query","http://jabber.org/protocol/disco#info", new DiscoverInfoProvider()); 
     // Time 
     try { 
      providerManager.addIQProvider("query", "jabber:iq:time", 
        Class.forName("org.jivesoftware.smackx.packet.Time")); 
     } catch (ClassNotFoundException e) { 
      Log.w("TestClient", 
        "Can't load class for org.jivesoftware.smackx.packet.Time"); 
     } 
     //Pings 
     providerManager.addIQProvider("ping","urn:xmpp:ping",new PingProvider()); 
     // Roster Exchange 
     providerManager.addExtensionProvider("x", "jabber:x:roster", new RosterExchangeProvider()); 
     providerManager.addIQProvider("vCard", "vcard-temp", new VCardProvider()); 
     // Message Events 
     providerManager.addExtensionProvider("x", "jabber:x:event", 
       new MessageEventProvider()); 
     // Chat State 
     providerManager.addExtensionProvider("active", "http://jabber.org/protocol/chatstates", 
       new ChatStateExtension.Provider()); 
     providerManager.addExtensionProvider("composing", "http://jabber.org/protocol/chatstates", 
       new ChatStateExtension.Provider()); 
     providerManager.addExtensionProvider("paused", "http://jabber.org/protocol/chatstates", 
       new ChatStateExtension.Provider()); 
     providerManager.addExtensionProvider("inactive", "http://jabber.org/protocol/chatstates", 
       new ChatStateExtension.Provider()); 
     providerManager.addExtensionProvider("gone", "http://jabber.org/protocol/chatstates", 
       new ChatStateExtension.Provider()); 
     // XHTML 
     providerManager.addExtensionProvider("html", "http://jabber.org/protocol/xhtml-im", 
       new XHTMLExtensionProvider()); 
     // Group Chat Invitations 
     providerManager.addExtensionProvider("x", "jabber:x:conference", 
       new GroupChatInvitation.Provider()); 
     // Service Discovery # Items 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/disco#items", 
       new DiscoverItemsProvider()); 
     // Service Discovery # Info 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/disco#info", 
       new DiscoverInfoProvider()); 
     // Data Forms 
     providerManager.addExtensionProvider("x", "jabber:x:data", new DataFormProvider()); 
     // MUC User 
     providerManager.addExtensionProvider("x", "http://jabber.org/protocol/muc#user", 
       new MUCUserProvider()); 
     // MUC Admin 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/muc#admin", 
       new MUCAdminProvider()); 
     // MUC Owner 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/muc#owner", 
       new MUCOwnerProvider()); 
     // Delayed Delivery 
     providerManager.addExtensionProvider("x", "jabber:x:delay", 
       new DelayInformationProvider()); 
     // Version 
     try { 
      providerManager.addIQProvider("query", "jabber:iq:version", 
        Class.forName("org.jivesoftware.smackx.packet.Version")); 
     } catch (ClassNotFoundException e) { 
      // Not sure what's happening here. 
     } 
     // VCard 
     providerManager.addIQProvider("vCard", "vcard-temp", new VCardProvider()); 
     // Offline Message Requests 
     providerManager.addIQProvider("offline", "http://jabber.org/protocol/offline", 
       new OfflineMessageRequest.Provider()); 
     // Offline Message Indicator 
     providerManager.addExtensionProvider("offline", "http://jabber.org/protocol/offline", 
       new OfflineMessageInfo.Provider()); 
     // Last Activity 
     providerManager.addIQProvider("query", "jabber:iq:last", new LastActivity.Provider()); 
     // User Search 
     providerManager.addIQProvider("query", "jabber:iq:search", new UserSearch.Provider()); 
     // SharedGroupsInfo 
     providerManager.addIQProvider("sharedgroup", "http://www.jivesoftware.org/protocol/sharedgroup", 
       new SharedGroupsInfo.Provider()); 
     // JEP-33: Extended Stanza Addressing 
     providerManager.addExtensionProvider("addresses", "http://jabber.org/protocol/address", 
       new MultipleAddressesProvider()); 
     // FileTransfer 
     providerManager.addIQProvider("si", "http://jabber.org/protocol/si", 
       new StreamInitiationProvider()); 
     // Privacy 
     providerManager.addIQProvider("query", "jabber:iq:privacy", new PrivacyProvider()); 
     providerManager.addIQProvider("command", "http://jabber.org/protocol/commands", new AdHocCommandDataProvider()); 
     providerManager.addExtensionProvider("malformed-action", 
       "http://jabber.org/protocol/commands", 
       new AdHocCommandDataProvider.MalformedActionError()); 
     providerManager.addExtensionProvider("bad-locale", 
       "http://jabber.org/protocol/commands", 
       new AdHocCommandDataProvider.BadLocaleError()); 
     providerManager.addExtensionProvider("bad-payload", 
       "http://jabber.org/protocol/commands", 
       new AdHocCommandDataProvider.BadPayloadError()); 
     providerManager.addExtensionProvider("bad-sessionid", 
       "http://jabber.org/protocol/commands", 
       new AdHocCommandDataProvider.BadSessionIDError()); 
     providerManager.addExtensionProvider("session-expired", 
       "http://jabber.org/protocol/commands", 
       new AdHocCommandDataProvider.SessionExpiredError()); 
     providerManager.addIQProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageRequest.Provider()); 
     // Offline Message Indicator 
     providerManager.addExtensionProvider("offline", "http://jabber.org/protocol/offline", new OfflineMessageInfo.Provider()); 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/disco#info", 
       new DiscoverInfoProvider()); 
     providerManager.addExtensionProvider("x", "jabber:x:data", new DataFormProvider()); 
     // pm.addExtensionProvider("status ","", new XMLPlayerList()); 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/bytestreams", new BytestreamsProvider()); 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/disco#items", new DiscoverItemsProvider()); 
     providerManager.addIQProvider("query", "http://jabber.org/protocol/disco#info", new DiscoverInfoProvider()); 
} 
+0

вызовите этот метод перед созданием соединения с сервером на основе xmpp. –

+0

Это не работает с smack 4.1.7, предоставляя исключение для этого. –