ios objective c 中如何通过 XMPPFramework 连接 XMPP 服务器
How to connect XMPP server through XMPPFramework in ios in objective c
我在 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]];
}
但是点击这里的按钮得到错误信息是错误信息:
有人能帮忙吗me.Thanks。
@prem nath
在上面的代码中,您尝试连接到 - (void)viewDidLoad
中的服务器。
但是您可以在建立服务器连接后使用密码进行身份验证。
所以 - (void)xmppStreamDidConnect:(XMPPStream *)sender
of XMPPStream Delegate
在建立连接时被调用。您必须通过 XMPPStream Delegate 中的服务器进行身份验证。
我在 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]];
}
但是点击这里的按钮得到错误信息是错误信息:
有人能帮忙吗me.Thanks。
@prem nath
在上面的代码中,您尝试连接到 - (void)viewDidLoad
中的服务器。
但是您可以在建立服务器连接后使用密码进行身份验证。
所以 - (void)xmppStreamDidConnect:(XMPPStream *)sender
of XMPPStream Delegate
在建立连接时被调用。您必须通过 XMPPStream Delegate 中的服务器进行身份验证。