XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
相关背景 IM(Instant Messaging)正在被广泛使用,特别是公司与它们的客户互动连接方案以及互联网与Web2.0相关的应用.为了解决即时通信的标准问题,IETF(互联网工程任务组 The Internet Engineering Task Force)成立了专门的小组.研究和开发IM相关协议. 通信协议 PRIM 空间和即时信息协议(Presence and Instant Messaging) 该协议是IETF撰写的关于即时通讯标准协议的早期版本,其抽象模型最早是在2000年2月…
XMPP与HTTP的比较 XMPP的优势 Ÿ   1. 推送数据 HTTP只能从服务器哪里请求数据,除非服务器正在响应客户端请求,否则不能向客户端发送数据.但XMPP连接是双向的,任何一方在任何时候都可以向另外一方发送数据,只要连接是打开状态. Ÿ   2. 防火墙友好 XMPP对防火墙和NAT友好,因为服务器到客户端的连接是由客户端发起的,一旦连接,服务器就可以将其所需要的数据推送给客户端. Ÿ   3. 增强的安全性 XMPP构建在TLS和SASL上,具有更好的安全性 Ÿ   4. 更加丰富…
Presence 在XMPP协议中,我们使用presence来获取用户是否已经上线以及是否可以通信的状态. 为了能够知道自己联系人的状态以及让联系人知道自己的状态,用户上线后需要订阅联系人的状态,联系人也同样需要订阅用户的状态. 通过下面的消息订阅联系人的状态: <presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribe"/> 当联系人…
现决定使用Openfire作为服务端,Openfire采用Java开发,基于XMPP的实时开源协作服务器.单台可支持上万并发用户. Openfire体系结构 Openfire体系由其提供的服务器端.客户端以及相应的开发库组成. Openfire 通常我们所说的Openfire就是指Openfire服务端,现在已经更新到3.10.3版本,该服务器实现了绝大部分的XMPP协议. 除此之外,还有大量的Openfire插件可供使用. Spark Spark是一个使用java开发的实时协作客户端,通过简单…
服务器端 新建空工程 使用Eclipse新建名为openfire的空java工程. 导入源代码 这里使用的是openfire的openfire_src_3_10_3.zip源码. 导入后将目录src/java设置为“Use as Source Folder”. 配置类库 将build/lib目录下的除了ant和src目录下的jar 包全部加入到Libraries中去. 使用Ant编译 切换至Ant视图 运行下面的Ant任务: 运行成功后,会生成target和work两个目录. 配置debug M…
服务端 服务器 许可证 操作系统 是否支持任意客户端登录 备注 ejabberd 开源 Elang 是 支持虚拟主机和集群 Openfire Apache Java 是 Tigase GPLv3 Java 是 支持虚拟主机和集群 客户端 Spark 使用Java开发,具备跨平台性 浏览器 strophe.js…
本文链接:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-three.html 这里接着前文<iOS 开发之照片框架详解之二 —— PhotoKit 详解(上)>,主要是干货环节,列举了如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法. 三. 常用方法的封装 虽然 PhotoKit 的功能强大很多,但基于兼容 iOS 8.0 以下版本的考虑,暂时可能仍无法抛弃 ALAss…
转载自:http://kayosite.com/ios-development-and-detail-of-photo-framework-part-two.html 一. 概况 本文接着 iOS 开发之照片框架详解,侧重介绍在前文中简单介绍过的 PhotoKit 及其与 ALAssetLibrary 的差异,以及如何基于 PhotoKit 与 AlAssetLibrary 封装出通用的方法. 这里引用一下前文中对 PhotoKit 基本构成的介绍: PHAsset: 代表照片库中的一个资源,跟…