gpt4 book ai didi

ios - 如何在 iOS 应用程序中配置 XMPP Facebook 聊天

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:26 24 4
gpt4 key购买 nike

我正在开发一个使用 Facebook 聊天功能的 iOS 应用程序。

(我正在使用 Robbie Hanson 的 XMPPFramework)。

https://github.com/robbiehanson/XMPPFramework

在连接方法中我给出了我的用户名和密码

- (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; 

委托(delegate)方法。

希望对您有所帮助。

关于ios - 如何在 iOS 应用程序中配置 XMPP Facebook 聊天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22660989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com