XMPP实现简单的登录注册功能

XMPPFramework框架是通过代理的方式实现消息传递的,所以要实现注册登录功能,先理解一些基本的连接过程:

1.运行后需要和服务器建立一个长连接,系统会反馈连接是否成功

2.成功时需要告诉服务器的用户的密码,服务器判断是否给予授权

3.成功授权后,告诉服务器上线了。

4.将要离开时告诉服务器,我需要断开链接了。

5.服务器反馈你可以断开了,然后你再告诉服务器你下线了

用户登录的实现:

 1:实例化XMPPStream并设置代理,同时添加代理到工作队列
 2:使用JID连接至服务器,默认端口为5222,JID字符串中需要包含服务器的域名
 3:在完成连接的代理方法中验证用户密码,连接完成后XMPPStream的isConnect属性为YES
 4:在验证代理方法中判断用户是否登录成功
 5:上线或者下线成功后,向服务器发送Presence数据,以更新用户在服务器的状态

用户注册的实现:

1:与登录一样,首先发送帐号建立连接 
2:连接成功后,发送注册请求
3:注册成功后,会通知代理相应代理方法。
4:授权密码

下面来一步一步实现功能:

一:首先创建一个工程,命名为XMPPDemo

二:导入XMPPFramework框架

方法二种:

1:使用CocoaPods,不需要进行工程配置,可以直接使用!不会使用CocoaPods可以看该文章:http://code4app.com/article/cocoapods-install-usage导入XMPPFramework框架成功可以打开工程看到如下目录,工程中已经含有我们需要的框架:


2:  手动导入可以看该博客:http://www.cnblogs.com/dsxniubility/p/4307057.html

三:准备工作做好了,那么开始编写代码

1:首先在Main.storyboard中搭建一个简单的登录注册界面,运行效果如下:


2:下面来一起看一下实现代码

1)首先是自定义的管理类

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#import <XMPP.h>


//block 用户登录,注册部分

typedef void (^OperationSuccessBlock)();

typedef void (^OperationfailedBlock)(NSString *error);


@interface SHXMPPManager : NSObject<XMPPStreamDelegate>


+(SHXMPPManager *)xmppManager;

@property(nonatomic,strong,readonly)XMPPStream *xmppStream;

//是否注册用户标示

@property (assign,nonatomic)BOOL isRegisterUser;

@property(nonatomic,copy)OperationSuccessBlock successBlock;

@property(nonatomic,copy)OperationfailedBlock failedBlock;


//初始化XMPPStream

-(void)setupStream;


//登录

-(void)loginWithUserName:(NSString *)userName password:(NSString *)password loginSuccess:(OperationSuccessBlock)loginSuceess loginFailed:(OperationfailedBlock)loginFailed;


//注册

- (void)registerWithUserName:(NSString *)userName  password:(NSString *)password registerSuccess:(OperationSuccessBlock)registerSuccess registerFailed:(OperationfailedBlock)registerFailed;


@end


#import "SHXMPPManager.h"


#define dispatch_main_sync_safe(block)\

if ([NSThread isMainThread]) {\

block();\

} else {\

dispatch_sync(dispatch_get_main_queue(), block);\

}


//本地服务器端口名

#define kxmppServer  @"longshihuademacbook-pro.local"


@interface SHXMPPManager (){


    NSString *_userName;   //用户名

    NSString *_password;   //密码

}


@end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值