IOS基于XMPP协议开发--XMPPFramewok框架(二):服务器连接
连接服务器前需准备事项:
1.搭建好XMPP服务器
2.设置服务器地址和端口
[_xmppStream setHostName:@"127.0.0.1"];
[_xmppStream setHostPort:5222];
3.调用connect
关键项:
JID-格式必须为 "用户名"+"@"+"服务器地址",示例 :user@127.0.0.1
连接服务器必须进行JID设置,如果还没有账号可以设置任意值
具体代码如下:
- (BOOL)connect:(NSString*)user withpassword:(NSString*)pwd
{ if (user != nil) {
user = [NSString stringWithFormat:@"%@@%@",user,_xmppStream.hostName];
}
if (![_xmppStream isDisconnected]) {
if(_isLogined){
NSError *error = nil;
password=pwd;
[[self xmppStream] setMyJID:[XMPPJID jidWithString:user resource:@"ios"]];
if (![[self xmppStream] authenticateWithPassword:password error:&error])
{
NSLog(@"Error authenticating: %@", error);
}
}
return YES;
}
NSString *myJID = user;
NSString *myPassword = pwd;
if ( myPassword != nil) {
password = myPassword;
}
if (myJID != nil) { [_xmppStream setMyJID:[XMPPJID jidWithString:myJID resource:@"ios"]];
}else{
[_xmppStream setMyJID:[XMPPJID jidWithString:_xmppStream.hostName resource:@"ios"]];
}
NSError *error = nil;
[_xmppStream connectWithTimeout: error:&error];
if(error)
{
NSLog(@"连接失败%@",error);
} return YES;
}
连接返回的回调结果
///连接成功
- (void)xmppStreamDidConnect:(XMPPStream *)sender
{
NSLog(@"连接成功");
isXmppConnected = YES;
if(_isLogined){
NSError *error = nil;
if (![[self xmppStream] authenticateWithPassword:password error:&error])
{
NSLog(@"Error authenticating: %@", error);
}
}
}
///连接失败
- (void)xmppStreamDidDisconnect:(XMPPStream *)sender withError:(NSError *)error
{
NSLog(@"连接断开"); if (!isXmppConnected)
{
//DDLogError(@"Unable to connect to server. Check xmppStream.hostName");
}
}
断开连接
[_xmppStream disconnect];
IOS基于XMPP协议开发--XMPPFramewok框架(二):服务器连接的更多相关文章
- IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识
最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于X ...
- IOS基于XMPP协议开发--XMPPFramewok框架(三):用户注册
接着上面说 用户注册是比较简单的,成功连接上服务器后,设置好JID,即可调用 [_xmppStream registerWithPassword:pwd error:&err] 进行注册 -( ...
- 基于XMPP协议的Android即时通信系
以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过GPRS无线网络用TCP协议连接到服务器,以架设开源的Openfn'e服务 ...
- 基于XMPP协议的手机多方多端即时通讯方案
一.开发背景 1.国际背景 随着Internet技术的高速发展,即时通信已经成为一种广泛使用的通信方式.1996年Mirabilis公司推出了世界上第一个即时通信系统ICQ,不到10年间,即时通信(I ...
- 基于XMPP协议(openfire服务器)的消息推送实现
转自:http://blog.csdn.net/nomousewch/article/details/8088277 最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过J ...
- .net平台 基于 XMPP协议的即时消息服务端简单实现
.net平台 基于 XMPP协议的即时消息服务端简单实现 昨天抽空学习了一下XMPP,在网上找了好久,中文的资料太少了所以做这个简单的例子,今天才完成.公司也正在准备开发基于XMPP协议的即时通讯工具 ...
- 同人逼死官方系列!基于sddc 协议的SDK框架 sddc_sdk_lib 解析
基于sddc 协议的SDK框架 sddc_sdk_lib 解析 之前在移植 libsddc 库的时候感觉官方 demo 太低效了( ̄. ̄),复制粘贴代码好累,而且写出一个BUG,其他复制的代码整个就裂 ...
- 基于XMPP 协议的开发 android
设计过一款基于开源的XMPP即时通信协议的软件.採用C/S协议,通过GPRS无线网络用TCP协议到server.以架设开源的Openfire server作为即时通讯平台 系统主要由下面部分组成:一是 ...
- 基于XMPP协议的aSmack源码分析
在研究如何实现Pushing功能期间,收集了很多关于Pushing的资料,其中有一个androidnp开源项目用的人比较多,但是由于长时间没有什么人去维护,听说bug的几率挺多的,为了以后自己的产品稳 ...
随机推荐
- 解析天气预报JSON数据
解析天气预报JSON数据 JSON字符串 constjson2 = '{' + #13#10 +'"error":0,' + #13#10 +'"status" ...
- React的第一个例子
准备: 官网:https://facebook.github.io/react/downloads.html Github地址:https://github.com/facebook/react 首先 ...
- php 将网页执行的输出写入到本地文件中
php -f /var/www/html/default/script/lol_score_calculate/calculate.php >>score_calcutelate.log
- C++中经常使用到宏
_DOS_ 表示MS-DOS 16位系统平台 WIN32 表示Windows32位系统平台 WIN64 表示Windows64位系统平台 _WIN32_WCE 表 ...
- android RecyclerView (二) ItemDecoration 详解
RecyclerView 已经推出了一年多了,日常开发中也已经彻底从 ListView 迁移到了 RecyclerView,但前两天有人在一个安卓群里面问了个关于最顶上的 item view 加蒙层的 ...
- java Class的 getSuperclass与getGenericSuperclass区别
Class的getInterfaces与getGenericInterface区别 http://www.cnblogs.com/maokun/p/6773076.html 一.getSupercla ...
- JOIN与EXISTS(子查询)的效率研究
使用MySQL提供的Sample数据库Sakila 现将profiling打开,用来一会查看sql执行时间 set profiling=1; exists 子查询与 join联接效率的对比,功能:查看 ...
- 使用 Kafka 和 Spark Streaming 构建实时数据处理系统(转)
原文链接:http://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/index.html?ca=drs-&ut ...
- FFmpeg的使用——PHP转换视频、截取视频以及JW Player播放器控制
转载:http://blog.csdn.net/zm2714/article/details/7916440 给朋友做的一个项目中,涉及到上传视频.转换视频.自动截取已上传视频内容中的一帧做为缩略图片 ...
- 如何获得Windows Server 2012上的FC的WWN
我有一个测试环境, 一对Host与storage array之间既有iSCSI的连接, 也有FC的连接. 原来iSCSI的连接是OK的, 现在需要转用FC. 当在光纤交换机上划好了Zone之后, st ...