3. XMPP用户登录

在appDelegate处理来自XMPP服务器的所有请求

1.在appDelegate.h 中添加XMPP的主头文件

定义XMPP相关的属性的方法定义> 全局的XMPPStream,只读属性

2.在appDelegate.m 的interface中新建方法:遵守XMPPStreamDelegate协议可以方便编写代码(不写也可以)

  1.设置XMPPStream>setupStream

  2.通知服务器用户上线>goOnline

  3.通知服务器用户下线>goOffline

  4.连接到服务器>connect

  5.与服务器断开连接>disConnect

- (void)applicationWillResignActive:(UIApplication *)application {

// 这是重新恢复

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

}

3.在下面实现方法

//设置XMPPStream

setupStream{

//避免_xmppStream被重复定义,得判断是否为nil,等于nil才实例化

  1.实例化流

  _xmppStream = [[XMPPStream alloc] init];

  2.添加代理。因为所有网络请求都是做基于网络的数据处理,跟 UI无关,因此可以让代理yyifd其化线程中 ,从而提高程序的运行性能

  [_xmppStream addDelegate:self delegateQueue:dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)];

}

//连接

connnect{

//1.设置流

[self setupStream];

//2.指定用户名、密码、 主机teacher.local

比如:  NSString *userName [email protected]"[email protected]";

//3.设置流的JID和主机

  [_xmppStream setMyJID:[XMPPJID jidWithString:userName]];

  [_xmppStream setHostName:主机名];

//4.开始连接

  if(error){

  // 连接请求出错  错误原因可以调用 这个方法: error.localizedDescription

  }else{

  //连接请求成功

  }

}

// 设置代理方法   连接完成 (如果服务器地址不对,就不会调用此方法)

- (void)xmppStreamDidConnect:(XMPPStream *)sender{

  // 连接建立

  // 开始身份验证

    //定义密码password

  [_xmppStream authenticateWithPassword:password  error:nil];

}

//身份验证通过

- (void)xmppStreamDidAuthenticate:(XMPPStream *)sender{

}

//身份验证失败

- (void)xmppStream:(XMPPStream *)sender didNotAuthenticate:(DDXMLElement *)error{

}

//通知服务器用户上线

goOnline{

  //1。实例化一个上线报告

  XMPPPresence *presence = [XMPPPressence presence];

  [_xmppStream sendElement:presence];  //这个方法没有回调,只通知我的好友

}

goOffline{

  //1.实例化一个下线报告

    XMPPPresence *presence = [XMPPPresence presenceWithType:@"unavailable"];

  //2.发送presence给服务器,通知服务器客户端下线

    [_xmppStream sendElement:presence];

}

appDelegate.m的自带的方法  

- (void)applicationWillResignActive:(UIApplication *)application {

// 这是重新恢复

}

- (void)applicationDidEnterBackground:(UIApplication *)application {

//  这个是退出到后台

}

- (void)applicationWillEnterForeground:(UIApplication *)application {

// 这个方法是记录前台的。

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

}

时间: 2024-08-07 19:16:42

3. XMPP用户登录的相关文章

7.新.XMPP用户登录及注册

程序启动 就实例化setupStream.方法只调用一次 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [self setupStream]; } 在此方法用中调用- (void)setupStream{ // 1. 实例化XMPPSteam _xmppStream = [[XMPPStream alloc] init];

iOS开发——网络编程OC篇&(二)XMPP实现用户登录与注销

登录: 步骤: * 在AppDelegate实现登录 1. 初始化XMPPStream 2. 连接到服务器[传一个JID] 3. 连接到服务成功后,再发送密码授权 4. 授权成功后,发送"在线" 消息 一:导入框架,根据上一篇文章的说明去导入相应的库与文件 二:定义一个XMPP的成员变量 1 @interface AppDelegate ()<XMPPStreamDelegate>{ 2 XMPPStream *_xmppStream; 3 } 三:按步骤在代理方法中声明四

【iOS XMPP】使用XMPPFramewok(二):用户登录

转自:http://www.cnblogs.com/dyingbleed/archive/2013/05/10/3069397.html 用户登录 准备工作 比较知名的开源XMPP服务器:一个是Openfire,一个是ejabberd Openfire 使用 Java 语言编写,比较容易上手,地址:http://www.igniterealtime.org/projects/openfire/ ejabberd 使用 Erlang 语言编写,是一款非常知名的 Erlang 开源项目,地址:htt

linux PAM 用户登录认证

PAM(Pluggable Authentication Modules )是由Sun提出的一种认证机制.它通过提供一些动态链接库和一套统一的API,将系统提供的服务 和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段.从本篇开始会总结一些常用的pam模块及其实现的功能,今天讲的是pam_tally2模块. 一.参数与场景 应用场景:设置Linux用户连续N次输入错误密码进行登陆时,自动锁定X分钟或永久锁

【mfc】用对话框分页实现用户登录

所谓的对话框分页就是点击完一个对话框的按钮,切换到另一个对话框, 这样的对话框多用于一些需要用户登录才能够进行操作的软件, 下面就用对话框分页来实现用户登录系统 一.基本目标 有如下的程序,输入用户名与密码,如果用户名为admin,密码为123456,那么则成功登录,切换到一个有"欢迎登录"与"关闭"按钮的对话框 如果用户名或者密码输入错误则弹出提示, 点击关闭能够关闭这个程序,不弹出用户登录的对话框. 二.制作过程 1.首先如同之前的<[mfc]对于对话框程

Window上python开发--4.Django的用户登录模块User

在搭建网站和web的应用程序时,用户的登录和管理是几乎是每个网站都必备的.今天主要从一个实例了解以下django本身自带的user模块.本文并不对user进行扩展. 主要使用原生的模块. 1.User模块基础: 在使用user 之前先import到自己的iew中.相当与我们自己写好的models.只不过这个是系统提供的models. from django.contrib.auth.models import User # 导入user模块 1.1User对象属性 User 对象属性:usern

C#模拟网站用户登录

我们在写灌水机器人.抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录.那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的. HTTP协议是一个无连接的协议,也就是说这次对话的内容和状态与上次的无关,为了实现和用户的持久交互,网站与浏览器之前在刚建立会话时将在服务 器内存中建立一个Session,该Session标识了该用户(浏览器),每一个Session都有一个唯一的ID,第一次建立会话时服务器将生成的这 个ID传给浏览

JavaWeb用户登录功能的实现

大四快毕业了,3年多的时间中,乱七八糟得学了一大堆,想趁找工作之前把所学的东西整理一遍,所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它. 我贴出此篇博客的目的是,将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以后万一用到的话再拿过来修修改改即可. 有可能用得到的部分:生成验证码的Java类

完成用户登录注册功能

一,需求分析 整体分析框架如下图,需要的包也如下图,它们放在src下 所有的需求如下图所示, 1,我们创建一个名为day12的数据库,其中创建了一个users表 2,在myeclipse中我们新建一个名为day12_user的web项目, 3,在src下我们创建了如下几个java包: com.itheima.damain    实体类包,          其中包括 User类 com.itheima.dao          接口包    ,        其中包括 UserDao接口 com