XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP协议已经被用来构建大规模即时通信系统.游戏平台.协作空间及语音和视频会议系统. XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块.XMPP中有众多系统:发布-订阅服务.多人聊天.表单检索与处理.服务发现.实时数据传输.隐私处理及远程过程调用等. 大多数社交媒体(Facebook及Twi…
现决定使用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…
XMPP与HTTP的比较 XMPP的优势 Ÿ   1. 推送数据 HTTP只能从服务器哪里请求数据,除非服务器正在响应客户端请求,否则不能向客户端发送数据.但XMPP连接是双向的,任何一方在任何时候都可以向另外一方发送数据,只要连接是打开状态. Ÿ   2. 防火墙友好 XMPP对防火墙和NAT友好,因为服务器到客户端的连接是由客户端发起的,一旦连接,服务器就可以将其所需要的数据推送给客户端. Ÿ   3. 增强的安全性 XMPP构建在TLS和SASL上,具有更好的安全性 Ÿ   4. 更加丰富…
相关背景 IM(Instant Messaging)正在被广泛使用,特别是公司与它们的客户互动连接方案以及互联网与Web2.0相关的应用.为了解决即时通信的标准问题,IETF(互联网工程任务组 The Internet Engineering Task Force)成立了专门的小组.研究和开发IM相关协议. 通信协议 PRIM 空间和即时信息协议(Presence and Instant Messaging) 该协议是IETF撰写的关于即时通讯标准协议的早期版本,其抽象模型最早是在2000年2月…
Presence 在XMPP协议中,我们使用presence来获取用户是否已经上线以及是否可以通信的状态. 为了能够知道自己联系人的状态以及让联系人知道自己的状态,用户上线后需要订阅联系人的状态,联系人也同样需要订阅用户的状态. 通过下面的消息订阅联系人的状态: <presence from="alice@wonderland.lit" to="sister@realworld.lit" type="subscribe"/> 当联系人…
服务端 服务器 许可证 操作系统 是否支持任意客户端登录 备注 ejabberd 开源 Elang 是 支持虚拟主机和集群 Openfire Apache Java 是 Tigase GPLv3 Java 是 支持虚拟主机和集群 客户端 Spark 使用Java开发,具备跨平台性 浏览器 strophe.js…
  本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39.ctfile.com/f/2501739-683704177-83c7fe?p=2096 (访问密码: 2096) 一.开发环境安装和配置 1.安装Qt Designer和汉化 (1)安装Qt Designer   使用版本为Qt Designer 5.11.1,安装过程就是下一步...最后完成.…
http://blog.csdn.net/lostaway/article/details/8086056 1.简介 Windows 下远程 Linux 开发工具,比较著名的就是 WinGDB 和 Magic C++.都是商业软件,而且配置复杂,据说还不稳定.其实,我们想要的就是个图形环境 IDE,而且是直接操作的远程 Linux 环境.经过若干的实践,发现使用 SecureCRT + Eclipse 基于 X11 转发即可实现可视化远程 Linux 开发.先附上最终效果图: 2.环境&软件准备…