2013-02-28 6 views
2

Я работаю на установке ejabberd, я настроил сервер успешно, но на стороне клиента, мы должны XMPP Framework для этого,потребность XMPP Framework

I Гугле я получил следующие ссылки

http://deusty.blogspot.in/2008/08/xmppframework-on-iphone.html

http://iphone4developer.blogspot.in/2011/07/how-to-add-xmpp-in-your-ios-project.html

Я скачал robbiehanson/XMPPFramework, но он бросает ошибки, и некоторые ссылки дает мне ошибку 404 (они удалены)

Я скачал клиент JABBER по этой ссылке (https://github.com/funkyboy/Building-a-Jabber-client-for-iOS), но XMPP каркасных файлы кидает ошибки (те, которые уже удалены) из приложения

Я получил один образец, который iPhoneXMPP образец, но он выдает ошибку, "Невозможно для подключения к серверу. Проверить xmppStream.hostName "я дал свое имя хоста в методе willSecureWithSettings

Сомнение:

1) Пожалуйста, Ведите меня, чтобы загрузить надлежащий XMPP Framework с ошибкой,

2) Как настроить сторону клиента ejabber ?

Пожалуйста, руководство мне

Спасибо большое заранее

+0

2 лет назад я загрузил ее базовую версию. не обновлено и сделано одно Push-уведомление POC. там я настроил gtalk с ним, а позже, что poc был включен в радар.Теперь у меня нет исходного кода, который поможет вам, но я хотел бы помочь вам ... –

+0

ok .. Спасибо u @AnoopVaidya – Babul

+0

@BabulI добавил инфраструктуру XMPP со всеми их зависимостями в мое приложение для iPhone-чата, и он не дает любая ошибка (успешно построена). Теперь вы можете мне помочь, теперь то, что мне нужно сделать в моем приложении после добавления инфраструктуры XMPP ..? Спасибо –

ответ

5

I скачал robbiehanson/XMPPFramework около 6 месяцев назад по этой ссылке: https://github.com/robbiehanson/XMPPFramework. Я выполнил шаги, упомянутые в разделе Getting Started. Это не вызвало никаких ошибок. Просто попробуйте выполнить следующие шаги, чтобы настроить xmppframework с вашим приложением.

В примере приложения я нашел функцию setupStream(), которую я вызываю, когда начинаю свое приложение. В этой функции я создаю xmppStream и активирую различные модули, которые необходимы в моем приложении. например

xmppStream = [[XMPPStream alloc] init]; 

    // Activate xmpp modules after creating them 

    [xmppReconnect   activate:xmppStream]; 
    [xmppRoster   activate:xmppStream]; 
    [xmppvCardTempModule activate:xmppStream]; 
    [xmppvCardAvatarModule activate:xmppStream]; 
    [xmppCapabilities  activate:xmppStream]; 

    // Add ourself as a delegate to anything we may be interested in 

    [xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)]; 


[xmppStream setHostName:XMPPHOST]; 
[xmppStream setHostPort:5222]; 

// You may need to alter these settings depending on the server you're connecting to 
allowSelfSignedCertificates = NO; 
allowSSLHostNameMismatch = NO; 

После установки потока, что вам нужно сделать проверку подлинности, как это:

- (BOOL)connect:(NSString *)myJID //username registered with server 
{ 
    if (![xmppStream isDisconnected]) { 
     return YES; 
    } 

    if (myJID == nil) { 
     return NO; 
    } 

    [xmppStream setMyJID:[XMPPJID jidWithString:myJID]]; 

    NSError *error = nil; 
    if (![xmppStream connect:&error]) 
    {   
     if(DEBUG) 
     { 
      NSLog(@"ERROR: Not connected to XMPP Server"); 
     } 
     DDLogError(@"Error connecting: %@", error); 
     return NO; 
    } 
    return YES; 
} 

Эта функция будет вызываться в рамках и передать пароль здесь:

- (void)xmppStreamDidConnect:(XMPPStream *)sender 
{ 
    if(sender == xmppStream) 
    { 
     //DDLogVerbose(@"In xmppStream: %@: %@", THIS_FILE, THIS_METHOD); 

     isXmppConnected = YES; 

     NSError *error = nil; 

     if (![[self xmppStream] authenticateWithPassword:password error:&error]) 
     { 
      DDLogError(@"Error authenticating: %@", error); 
     } 
    }  
} 

сейчас если пользователь аутентифицирован, эту функцию вызывают:

- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender 
{ 
    if(sender == xmppStream) 
    { 
     [self goOnline]; 
    } 
} 

goOnline пошлет присутствия пользователя на сервере:

- (void)goOnline 
{ 
    XMPPPresence *presence = [XMPPPresence presence]; // type="available" is implicit 
    [xmppStream sendElement:presence]; 
} 

Теперь вы можете отправить/получить сообщение/наличие и т.д.

+0

@AkashI добавила инфраструктуру XMPP со всеми их зависимостями в мое приложение для iPhone-чата и не дает никаких ошибок (построено успешно). Теперь вы можете мне помочь, теперь, что мне нужно делать в моем приложении после добавления рамки XMPP ..? Спасибо –

+0

Эй, браки, модули недоступны в git для меня в моем коде, которые показывают ошибку, а также «connect «метода здесь нет в xmppstream. У меня нет ошибки в коде, но это не соединение с сервером. У меня есть сервер, размещенный там ... пожалуйста, помогите мне как можно скорее. –

Смежные вопросы