2016-04-28 3 views
3

Hinweis: Server hat bereits Stream-Verwaltung installiert und funktioniert.XMPP-Implementierung von XEP-0198 in objective-C

Hier ist mein Code:

XMPPStreamManagementMemoryStorage *storage1=[[XMPPStreamManagementMemoryStorage alloc] init]; 
xmppStreamManagement=[[XMPPStreamManagement alloc] initWithStorage:storage1]; 
xmppStreamManagement.autoResume = YES; 
[xmppStreamManagement enableStreamManagementWithResumption:TRUE maxTimeout:5]; 
[xmppStreamManagement addDelegate:self delegateQueue:dispatch_get_main_queue()]; 
[xmppStreamManagement activate:xmppStream]; 
[xmppStreamManagement requestAck]; 

ich es auch Verfahren, wie gut umgesetzt delegieren. Aber weder ich bekomme Antwort in Delegate-Methode noch Stream-Management arbeiten.

Wie wird es funktionieren und wie können wir es verifizieren? Hier

, wenn ich Erfolg Implementierung von Stream Management bekam auf iOS Seite, dann würde verloren automatisch offline Nachricht

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message 

Jede Hilfe zu

kommen wird geschätzt.

Antwort

2

Es ist ziemlich einfach zu aktivieren XMPPStreamManagement in Ihrer iOS App.

Initialisieren Sie Ihre XMPPStreamManagement Instanz mit XMPPStreamManagementMemoryStorage.

XMPPStreamManagementMemoryStorage *xmppSMMS = [[XMPPStreamManagementMemoryStorage alloc] init]; 
xmppStreamManagement = [[XMPPStreamManagement alloc] initWithStorage:xmppSMMS]; 

Fügen Sie Ihre Implementierungsklasse als Delegierter

[xmppStreamManagement addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

nun den Stream Management ermöglichen, sobald die XMPPStream verbunden ist und Bindungen stattgefunden haben.

[xmppStreamManagement activate:xmppStream]; 
xmppStreamManagement.autoResume = YES; 
[xmppStreamManagement enableStreamManagementWithResumption:YES maxTimeout:0]; 
[xmppStreamManagement requestAck]; 

Implementieren Sie die Delegatmethoden

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender wasEnabled:(NSXMLElement *)enabled{ 
} 

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender wasNotEnabled:(NSXMLElement *)failed{ 
} 

- (void)xmppStreamManagement:(XMPPStreamManagement *)sender didReceiveAckForStanzaIds:(NSArray *)stanzaIds{ 
} 
+0

Hallo Freund, rufen Sie in meinem Fall Delegierten nicht. Kannst du mir bitte helfen? – Bucket

Verwandte Themen