2017-07-03 4 views
0

Je suis en train de faire fonction de serveur et la configuration XMPP est:serveur XMPPFramework fonction

_xmppCapabilitiesStorage = [XMPPCapabilitiesCoreDataStorage sharedInstance]; 
_xmppCapabilities = [[XMPPCapabilities alloc] initWithCapabilitiesStorage:_xmppCapabilitiesStorage]; 
_xmppCapabilities.autoFetchMyServerCapabilities = YES; 

le journal dit:

SEND: 
<?xml version="1.0" encoding="utf-8"?> 
<iq type="get" to="myserver.im" id="4FE37B35-8078-41B0-BCAF-DC6CFF04DD33"> 
    <query xmlns="http://jabber.org/protocol/disco#info"/> 
</iq> 

RECV:

<?xml version="1.0" encoding="utf-8"?> 
<iq xmlns="jabber:client" type="result" id="4FE37B35-8078-41B0-BCAF-DC6CFF04DD33" from="myserver.im" to="[email protected]/MyChatClient"> 
    <query xmlns="http://jabber.org/protocol/disco#info"> 
     <identity category="account" type="registered"/> 
     <identity category="pubsub" type="pep"/> 
     <feature var="http://jabber.org/protocol/pubsub#retrieve-default"/> 
     <feature var="urn:myserver:im:groupchat#sync"/> 
     <feature var="http://jabber.org/protocol/pubsub#purge-nodes"/> 
     <feature var="vcard-temp"/> 
     <feature var="http://jabber.org/protocol/pubsub#subscribe"/> 
     <feature var="http://jabber.org/protocol/pubsub#subscription-options"/> 
     <feature var="http://jabber.org/protocol/pubsub#create-nodes"/> 
     <feature var="http://jabber.org/protocol/pubsub#outcast-affiliation"/> 
     <feature var="http://jabber.org/protocol/pubsub#get-pending"/> 
     <feature var="http://jabber.org/protocol/pubsub#multi-subscribe"/> 
     <feature var="http://jabber.org/protocol/pubsub#presence-notifications"/> 
     <feature var="urn:myserver:im:groupchat"/> 
     <feature var="urn:xmpp:ping"/> 
     <feature var="jabber:iq:register"/> 
     <feature var="http://jabber.org/protocol/pubsub#delete-nodes"/> 
     <feature var="urn:myserver:im:filetransfer"/> 
     <feature var="http://jabber.org/protocol/pubsub#config-node"/> 
     <feature var="http://jabber.org/protocol/pubsub#retrieve-items"/> 
     <feature var="http://jabber.org/protocol/pubsub#auto-create"/> 
     <feature var="http://jabber.org/protocol/disco#items"/> 
     <feature var="http://jabber.org/protocol/pubsub#item-ids"/> 
     <feature var="http://jabber.org/protocol/pubsub#meta-data"/> 
     <feature var="jabber:iq:roster"/> 
     <feature var="urn:xmpp:mam:1"/> 
     <feature var="http://jabber.org/protocol/pubsub#instant-nodes"/> 
     <feature var="http://jabber.org/protocol/pubsub#modify-affiliations"/> 
     <feature var="http://jabber.org/protocol/pubsub#persistent-items"/> 
     <feature var="http://jabber.org/protocol/pubsub#create-and-configure"/> 
     <feature var="http://jabber.org/protocol/pubsub"/> 
     <feature var="http://jabber.org/protocol/pubsub#publisher-affiliation"/> 
     <feature var="http://jabber.org/protocol/pubsub#access-open"/> 
     <feature var="http://jabber.org/protocol/pubsub#retrieve-affiliations"/> 
     <feature var="jabber:iq:version"/> 
     <feature var="http://jabber.org/protocol/pubsub#retract-items"/> 
     <feature var="urn:xmpp:time"/> 
     <feature var="http://jabber.org/protocol/pubsub#manage-subscriptions"/> 
     <feature var="jabber:iq:privacy"/> 
     <feature var="jabber:iq:last"/> 
     <feature var="http://jabber.org/protocol/commands"/> 
     <feature var="http://jabber.org/protocol/offline"/> 
     <feature var="urn:xmpp:carbons:2"/> 
     <feature var="http://jabber.org/protocol/address"/> 
     <feature var="http://jabber.org/protocol/pubsub#publish"/> 
     <feature var="http://jabber.org/protocol/pubsub#collections"/> 
     <feature var="http://jabber.org/protocol/pubsub#retrieve-subscriptions"/> 
     <feature var="http://jabber.org/protocol/disco#info"/> 
     <feature var="jabber:iq:private"/> 
     <feature var="http://jabber.org/protocol/rsm"/> 
    </query> 
</iq> 

comment vérifier plus tard sur quelle fonctionnalité existe-t-il? Je ne vois aucune liste de fonctionnalités dans le XMPPCapabilities ou XMPPCapabilitiesCoreDataStorage. Est-ce que je manque quelque chose? Par exemple, je veux vérifier si <feature var="urn:myserver:im:filetransfer"/> existe. Où XMPPFramework enregistre-t-il et conserve-t-il la liste des fonctionnalités? n'importe quel indice est très apprécié.

+0

Je pense que ce lien utile: http://jonathonstaff.com/blog/tackling-file-transfers-with-the-xmppframework/ – Jay

+0

@Jay merci, j'ai déjà vérifié, mais cela n'a pas dit où XMPPFramework détient la liste des fonctionnalités. Je débogue le framework pour le découvrir. –

Répondre

0

Ok j'ai trouvé où les informations sont stockées:

NSManagedObjectContext *moc = [[XMPPCapabilitiesCoreDataStorage sharedInstance] mainThreadManagedObjectContext]; 
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPCapsResourceCoreDataStorageObject" 
                inManagedObjectContext:moc]; 
NSFetchRequest *fetchRequest = [NSFetchRequest new]; 
[fetchRequest setEntity:entityDescription]; 
fetchRequest.fetchBatchSize = 30; 
NSPredicate *filter = [NSPredicate predicateWithFormat:@"jidStr == %@", _domain]; 
fetchRequest.predicate = filter; 
NSError *error = nil; 
NSArray *features = [moc executeFetchRequest:fetchRequest error:&error]; 
NSArray *ch = [[[[features firstObject] caps] capabilities] children];