gpt4 book ai didi

ios - 如何在 objective-c 中通过ios中的XMPPFramework连接XMPP服务器

转载 作者:行者123 更新时间:2023-11-28 21:15:19 27 4
gpt4 key购买 nike

我在 Objective-C 中通过 IOS 中的 XMPPFramework 连接到 XMPP 服务器,我已经像这样在 viewDidLoad 方法中初始化了连接参数:

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

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

NSString *username = @"name@domainname.net";
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

有人能帮帮我吗。谢谢。

最佳答案

@prem nath

在上面的代码中,您尝试连接到 - (void)viewDidLoad 中的服务器。但是您可以在建立服务器连接后使用密码进行身份验证。

因此 - XMPPStream Delegate 的 (void)xmppStreamDidConnect:(XMPPStream *)sender 在建立连接时被调用。您必须通过 XMPPStream Delegate 中的服务器进行身份验证。

关于ios - 如何在 objective-c 中通过ios中的XMPPFramework连接XMPP服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41506890/

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