2015-09-17 1 views
0

Привет, я делаю чат-приложение с XMPPFramework.Метод метода отправки XMPPFramework не называется

У меня есть настройки XMPPFramework в моем проекте, ссылаясь на эту ссылку: - http://code.tutsplus.com/tutorials/building-a-jabber-client-for-ios-xmpp-setup--mobile-7190

код для отправки сообщения: -

NSXMLElement *body = [NSXMLElement elementWithName:@"body"]; 
    [body setStringValue:messageStr]; 

    NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; 
    [message addAttributeWithName:@"type" stringValue:@"chat"]; 
    [message addAttributeWithName:@"to" stringValue:fnjid]; 
    [message addChild:body]; 
    [self.xmppStream sendElement:message]; 

Этот код работает хорошо, но теперь это не работает ... метод "отправить элемент" не вызывается .. он находится в классе xmppstream.

- (void)sendElement:(NSXMLElement *)element 

Этот метод вызывается, когда соединение с сервером, но не работает только в посылать сообщения

+0

Is 'self.xmppStream' nil, когда' sendElement: 'не называется? – Larme

+0

нет, это не ноль –

ответ

0

Возможно, у вас есть проблемы с соединением и авторизации?

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    isXmppConnected = YES; 
    NSError *error = nil; 
    if (![[self xmppStream] authenticateWithPassword:password error:&error]) 
    { 

    } 
} 

And 

- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender 
{ 
    XMPPPresence *presence = [XMPPPresence presenceWithType:@"available"]; 
    [[self xmppStream] sendElement:presence]; 
} 


In this case, the method does not work correctly , because state != STATE_XMPP_CONNECTED 

- (void)sendElement:(NSXMLElement *)element 
{ 
if (element == nil) return; 

dispatch_block_t block = ^{ @autoreleasepool { 

    if (state == STATE_XMPP_CONNECTED) 
    { 
    [self sendElement:element withTag:TAG_XMPP_WRITE_STREAM]; 
    } 
    else 
    { 
    [self failToSendElement:element]; 
    } 
}}; 

if (dispatch_get_specific(xmppQueueTag)) 
    block(); 
else 
    dispatch_async(xmppQueue, block); 
} 
Смежные вопросы