XMPP登录应用
一、导入框架
1.XMMP框架,写入头文件,设置XMPPStreamDelegate代理,定义 XMPPStream *_xmppStream;
2.libresolv.dylib
3.libxml2.dylib
二、初始化XMPPStream
#pragma mark 初始化XMPPStream
-(void)setupXMPPStream{
_xmppStream = [[XMPPStream alloc] init];
// 设置代理
[_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)];
}
三、连接到服务器
设置登录用户JID _xmppStream.myJID
设置服务器域名_xmppStream.hostName
设置端口_xmppStream.hostPort
连接
if(![_xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&err]){
NSLog(@"%@",err);
}
#pragma mark -XMPPStream的代理
四、 与主机连接成功
-(void)xmppStreamDidConnect:(XMPPStream *)sender{
NSLog(@"与主机连接成功");
// 主机连接成功后,发送密码进行授权
[self sendPwdToHost];
}
五、连接到服务成功后,再发送密码授权、
[_xmppStream authenticateWithPassword:@"123456" error:&err];
六、授权成功
-(void)xmppStreamDidAuthenticate:(XMPPStream *)sender{
NSLog(@"授权成功");
[self sendOnlineToHost];
}
七、授权成功后,发送"在线" 消息
-(void)sendOnlineToHost{
NSLog(@"发送 在线 消息");
XMPPPresence *presence = [XMPPPresence presence];
NSLog(@"%@",presence);
[_xmppStream sendElement:presence];
}
八、离线
// 1." 发送 "离线" 消息"
XMPPPresence *offline = [XMPPPresence presenceWithType:@"unavailable"];
[_xmppStream sendElement:offline];
// 2. 与服务器断开连接
[_xmppStream disconnect];
XMPP登录应用的更多相关文章
- openfire xmpp 登录参数解析
1.openfire xmpp登录 boolean result = false; ConnectionConfiguration config = new ConnectionConfigurati ...
- UI进阶 即时通讯之XMPP登录、注册
1.XMPP环境搭建 http://www.cnblogs.com/fearlessyyp/p/5506644.html 第一次打开可能会有点儿慢,图片很多,步骤很详细,祝搭建成功. 2.工程中添加X ...
- xmpp 登录注册小结
将XMPPStream放在APPDelegate,以便全局访问 #pragma mark - XMPP相关的属性和方法定义 /** * 全局xmppstream,只读属性 */ @property ( ...
- xmpp登录(2)
XMPP中常用对象们: XMPPStream:xmpp基础服务类 XMPPRoster:好友列表类 XMPPRosterCoreDataStorage:好友列表(用户账号)在core data中的操作 ...
- xmppmini 项目详解:一步一步从原理跟我学实用 xmpp 技术开发 2.登录的实现
第二章登录的实现 金庸<倚天屠龙记> 张三丰缓缓摇头,说道:“少林派累积千年,方得达成这等绝技,决非一蹴而至,就算是绝顶聪明之人,也无法自创.”他顿了一顿,又道:“我当年在少林寺中住过,只 ...
- XMPP实现登陆注销功能
XMPP框架的下载与导入等问题请参照 —— XMPP框架的分析.导入及问题解决 DEMO ——XMPP即时通讯(已导入框架)密码:3a7n 这篇我们利用XMPP框架来实现一下登陆功能,先来介绍一下XM ...
- UI进阶 即时通讯之XMPP好友列表、添加好友、获取会话内容、简单聊天
这篇博客的代码是直接在上篇博客的基础上增加的,先给出部分代码,最后会给出能实现简单功能的完整代码. UI进阶 即时通讯之XMPP登录.注册 1.好友列表 初始化好友花名册 #pragma mark - ...
- XMPP开发之从零開始
对于server的搭建和设置.我在这里就不再多说了.有好多前辈已经帮大家攻克了.能够參考下这篇博客 XMPPserver配置 我依照这个博客配置好了,server后,然后在网上參照代码写了一个小的de ...
- XMPP详解
https://www.jianshu.com/p/84d15683b61e https://www.cnblogs.com/lurenq/p/7026983.html 1. xmpp简介 XMPP ...
随机推荐
- Qt编程18:Qt调色板QPalette的使用
QPalette类有两个枚举类型, 枚举 1.ColorGroup CorGroup指的是3中不同的状态(什么时候设置颜色): 1>Active:获得焦点的状态. 2>Inactive:未 ...
- swift3.0 coredata 的使用
//swift3.0在语法上有很大的改变,以简单的增删改查为例,如下: //User类如下: import Foundation import CoreData extension User { @n ...
- mybatis 关联映射传递多参数方法
<resultMap type="com.secoo.my.bean.OrderItemComment" id="orderItemResult"> ...
- 面试常备题---二叉树总结篇(zt)
人生就像是一场长跑,有很多机会,但也得看我们是否能够及时抓牢,就像下面这样的代码: while(isRunning) { if(...){...} else if(...){...} ... else ...
- thymleaf分支用法
<div th:switch="${user.role}"> <p th:case="'admin'">User is an admin ...
- CentOS(三)--初识linux的文件系统以及用户组等概念
进入到了Linux学习之CentOS第三篇了,这篇文章主要记录下对linux文件系统的初步认识,以及用户组.用户权限.文件所有者.文件所在组等概念 一.Linux文件结构及基本文件夹 文件系统是Lin ...
- LeetCode 278
First Bad Version You are a product manager and currently leading a team to develop a new product. U ...
- 【Stirling Number】
两类Stirling Number的简介与区别(参考自ACdreamer的CSDN) Stirling Number I --- s(n,k):将n个物体排成k个非空循环排列(环)的方法数. 递推式: ...
- BZOJ 1441
1441: Min Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 467 Solved: 312[Submit][Status][Discuss] De ...
- Ionic条码扫描
http://m.blog.csdn.net/article/details?id=45843819