如何在iOS应用程序中配置XMPP Facebook聊天
我正在开发一个使用Facebook聊天功能的iOS应用程序 (我正在使用Robbie Hanson的XMPPFramework) 在connect方法中,我已经给出了我的用户名和密码如何在iOS应用程序中配置XMPP Facebook聊天,ios,objective-c,xmppframework,facebook-chat,Ios,Objective C,Xmppframework,Facebook Chat,我正在开发一个使用Facebook聊天功能的iOS应用程序 (我正在使用Robbie Hanson的XMPPFramework) 在connect方法中,我已经给出了我的用户名和密码 - (BOOL)connect { if (![xmppStream isDisconnected]) { return YES; } NSString *myJID = [[NSUserDefaults standardUserDefaults] stringForKe
- (BOOL)connect
{
if (![xmppStream isDisconnected]) {
return YES;
}
NSString *myJID = [[NSUserDefaults standardUserDefaults] stringForKey:kXMPPmyJID];
NSString *myPassword = [[NSUserDefaults standardUserDefaults] stringForKey:kXMPPmyPassword];
//
// If you don't want to use the Settings view to set the JID,
// uncomment the section below to hard code a JID and password.
//
myJID = @"example@facebook.com";
myPassword = @"Mypassword";
if (myJID == nil || myPassword == nil) {
return NO;
}
[xmppStream setMyJID:[XMPPJID jidWithString:myJID]];
password = myPassword;
NSError *error = nil;
if (![xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting"
message:@"See console for error details."
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alertView show];
DDLogError(@"Error connecting: %@", error);
return NO;
}
在上游方法中,我给出了我的主机名和端口号
- (void)setupStream
{
NSAssert(xmppStream == nil, @"Method setupStream invoked multiple times");
xmppStream = [[XMPPStream alloc] init];
#if !TARGET_IPHONE_SIMULATOR
{
xmppStream.enableBackgroundingOnSocket = YES;
}
#endif
xmppReconnect = [[XMPPReconnect alloc] init];
xmppRosterStorage = [[XMPPRosterCoreDataStorage alloc] init];
xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:xmppRosterStorage];
xmppRoster.autoFetchRoster = YES;
xmppRoster.autoAcceptKnownPresenceSubscriptionRequests = YES;
xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];
xmppvCardAvatarModule = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:xmppvCardTempModule];
xmppCapabilitiesStorage = [XMPPCapabilitiesCoreDataStorage sharedInstance];
xmppCapabilities = [[XMPPCapabilities alloc] initWithCapabilitiesStorage:xmppCapabilitiesStorage];
xmppCapabilities.autoFetchHashedCapabilities = YES;
xmppCapabilities.autoFetchNonHashedCapabilities = NO;
// Activate xmpp modules
[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_main_queue()];
[xmppRoster addDelegate:self delegateQueue:dispatch_get_main_queue()];
[xmppStream setHostName:@"chat.facebook.com"];
[xmppStream setHostPort:5222];
// You may need to alter these settings depending on the server you're connecting to
allowSelfSignedCertificates = NO;
allowSSLHostNameMismatch = NO;
}
有没有我遗漏的步骤?我不知道如何进一步进行。如果有人知道解决办法,请帮助我。请帮帮我
提前感谢。尝试使用以下方法保护连接:
[xmppStream secureConnection:(NSError *)];
在
- (void)xmppStreamDidConnect:(XMPPStream *)sender;
委托方法
希望有帮助。我看到您只更改了库的示例项目。设置这些参数时,您是否可以查看聊天好友?即使我的好友列表也不会显示在应用程序中。请帮助我继续学习任何好的教程。当您在示例应用程序的“设置”页面中进行设置时,应该会显示您的好友列表。尽量不要设置主机名。您需要开始使用XMPP文档:
http://xmpp.org/xmpp-protocols/xmpp-core/
这里列出了一些书:http://xmpp.org/resources/books/
。也许你想买一个。你看过Facebook api了吗。我通过保护连接获得了输出