XMPP学习Day1
来源:互联网 发布:java redis lua脚本 编辑:程序博客网 时间:2024/05/16 02:20
我是个初学者。我热爱iOS开发。最近迷上了即时通讯。然后在自己电脑上面搭建一个服务器自己是弄一下。在这里记录自己学习的历程以此鞭策自己。
这里忽略建立服务器的艰辛。哈哈,也可以和我讨论一下。
感谢博主的博客http://blog.csdn.net/kangkangz4/article/category/1089711,让我学习到了XMPP的知识。
今天就是xmpp的登录以及注销的demo。
AppDelegate.h 文件
//// AppDelegate.h// xmpp框架导入//// Created by 陆巧怡 on 15/7/16.// Copyright (c) 2015年 Simon. All rights reserved.//#import <UIKit/UIKit.h>@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;/** * 注销登录 */-(void)logout;@end
AppDelegate.m 文件
//// AppDelegate.m// xmpp框架导入//// Created by 陆巧怡 on 15/7/16.// Copyright (c) 2015年 Simon. All rights reserved.//#import "AppDelegate.h"#import "XMPPFramework.h"/** * 在AppDelegate实现登录 1.初始化XMPPStream 2.连接服务器时候要【传一个JID】 3.连接到服务器后,在发送密码授权 4.授权成功后,发送"在线"消息 */@interface AppDelegate ()<XMPPStreamDelegate>{ XMPPStream *_xmppStream;}// 1.初始化XMPPStream-(void)setupXMPPStream;// 2.连接服务器时候要【传一个JID】-(void)connectToHost;// 3.连接到服务器后,在发送密码授权-(void)sendPwdToHost;// 4.授权成功后,发送"在线"消息-(void)sendOnlineToHost;@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 程序一启动就连接主机 [self connectToHost]; return YES;}#pragma mark -私用方法#pragma mark -初始化初始化XMPPStream-(void)setupXMPPStream{ _xmppStream = [[XMPPStream alloc]init]; //设置代理 [_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)]; }#pragma mark -连接服务器时候要【传一个JID】-(void)connectToHost{ NSLog(@"1.开始连接到服务器"); if (!_xmppStream) { [self setupXMPPStream]; } //设置用户JID /** * jidWithUser:用户名 domain:服务器 resource:标识用户登录的客户端 iPhone Android */ XMPPJID *myJID =[XMPPJID jidWithUser:@"dadong" domain:@"simon.local" resource:@"iPhone"]; _xmppStream.myJID = myJID; //设置服务器域名 //不仅可以是域名,还可以是IP地址。 _xmppStream.hostName = @"simon.local"; //设置端口 如果服务器的端口是5222 则可以省略不写 _xmppStream.hostPort = 5222; /** * 在配置hostPort连接配置的主机名。超时是可选的。没有超时则使用XMPPStreamTimeoutNone。如果还没有设置主机名或myJID,这个方法将返回没有和参数设置错误。 * * @param NSTimeInterval <#NSTimeInterval description#> * * @return <#return value description#> */ NSError *err =nil; BOOL state =[_xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&err]; if (!state) { NSLog(@"%@",err); }}#pragma mark -连接到服务器后,在发送密码授权-(void)sendPwdToHost{ NSError *err = nil; [_xmppStream authenticateWithPassword:@"123456" error:&err]; if (err) { NSLog(@"%@",err); } }#pragma mark -授权成功后,发送"在线"消息-(void)sendOnlineToHost{ NSLog(@"3.发送 在线 消息"); XMPPPresence *presence = [XMPPPresence presence]; NSLog(@"%@",presence); [_xmppStream sendElement:presence]; }#pragma mark -XMPPStream代理#pragma mark 与主机连接成功-(void)xmppStreamDidConnect:(XMPPStream *)sender{ NSLog(@"与主机连接成功"); NSLog(@"2.再发送密码授权"); //主机连接成功,发送密码进行授权 [self sendPwdToHost];}#pragma mark 与主机连接失败-(void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error{ if (error) { NSLog(@"与主机连接失败
0 0
- XMPP学习Day1
- XMPP学习
- XMPP学习
- XMPP学习
- XMPP 学习!
- xmpp学习
- XMPP 学习
- xmpp学习
- XMPP学习1-认识XMPP
- Ant学习(Day1)
- 学习笔记之day1
- 传智播客学习日记Day1
- Html学习—Day1
- java学习day1
- Struts2 学习笔记 day1
- java学习笔记day1
- 学习稀疏编码-day1
- CCNA学习笔记Day1
- C#中ArrayList和HashTable
- mongodb安装
- build.gradle Failed to resolve:me.relex:circleindicator:1.1.5
- Linux文件隐藏属性
- linux程序设计——信号量(第十四章)
- XMPP学习Day1
- 7.16实训--线程,服务器知识点
- unity 新的动画系统 Animator的使用(原)
- 01-暑期学习第一天
- leveldb学习:测试代码
- 追踪分布式Memcached默认的一致性hash算法
- 欢迎使用CSDN-markdown编辑器
- MFC运用GraphicsPath绘制曲线、选择曲线(判断点是否在曲线上)
- Java中的finalize方法理解