2017-01-06 1 views
1

Я подключения к серверу XMPP через XMPPFramework в IOS в объективном C, я инициализируется параметр соединения в методе viewDidLoad так:Как подключить сервер XMPP через XMPPFramework в ИОС в Objective C

- (void)viewDidLoad { 
[super viewDidLoad]; 
xmppStream = [[XMPPStream alloc] init]; 
[xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()]; 

xmppStream.hostName = @"hostname"; 
xmppStream.hostPort = 5222; 

NSString *username = @"[email protected]"; 
NSString *password = @"123456"; 

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

NSError *error = nil; 
if (![xmppStream oldSchoolSecureConnectWithTimeout:XMPPStreamTimeoutNone error:&error]) 
{ 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                 message:[NSString stringWithFormat:@"Can't connect to server %@", [error localizedDescription]] 
                 delegate:nil 
               cancelButtonTitle:@"Ok" 
               otherButtonTitles:nil]; 
    [alertView show]; 
} 
} 

И Попытка Аутентифицировать в по нажатию кнопки, как это:

- (IBAction)connectToXmpp:(id)sender { 

NSLog(@"%hhd", [xmppStream isConnected]); 
NSError *error = nil; 

if (![xmppStream authenticateWithPassword:@"123456" error:&error]) { 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                 message:[NSString stringWithFormat:@"Can't authenticate %@", [error localizedDescription]] 
                 delegate:nil 
               cancelButtonTitle:@"Ok" 
               otherButtonTitles:nil]; 
    [alertView show]; 
} 
[xmppStream sendElement:[XMPPPresence presence]]; 
} 

Но получаю сообщение об ошибке на кнопку мыши здесь является сообщение об ошибке:

enter image description here

Может кто-нибудь, пожалуйста, помогите мне. Спасибо.

+0

У вас есть решение? –

+0

@ Ankit Agarwal да, я понял ... –

ответ

1

@prem натх

В приведенном выше коде вы пытаетесь подключиться к серверу в - (void)viewDidLoad. Но вы можете аутентифицироваться с паролем после установления соединения с сервером.

Так что, когда соединение установлено, - (void)xmppStreamDidConnect:(XMPPStream *)sender из XMPPStream Delegate. Вы должны пройти аутентификацию с сервером в XMPPStream Delegate.

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