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];
}
Теперь вы можете отправить/получить сообщение/наличие и т.д.
2 лет назад я загрузил ее базовую версию. не обновлено и сделано одно Push-уведомление POC. там я настроил gtalk с ним, а позже, что poc был включен в радар.Теперь у меня нет исходного кода, который поможет вам, но я хотел бы помочь вам ... –
ok .. Спасибо u @AnoopVaidya – Babul
@BabulI добавил инфраструктуру XMPP со всеми их зависимостями в мое приложение для iPhone-чата, и он не дает любая ошибка (успешно построена). Теперь вы можете мне помочь, теперь то, что мне нужно сделать в моем приложении после добавления инфраструктуры XMPP ..? Спасибо –