dlqn.cn
域名年龄: 11年1个月6天HTTP/1.1 200 OK 访问时间:2015年03月18日 06:03:23 服务器:Apache/2.2.19 (Unix) mod_ssl/2.2.19 OpenSSL/1.0.1e-fips PHP/5.2.17 mod_jk/1.2.40 语言环境:PHP/5.2.17 X-Pingback: http://dlqn.cn/xmlrpc.php Keep-Alive: timeout=5, max=100 连接:Keep-Alive Transfer-Encoding: chunked 类型:text/html; charset=UTF-8 网站编码:UTF-8
那年今日 菜单 跳至内容 示例页面 搜索: XMPP协议实现原理介绍 2015年2月13日未分类qsr 本文介绍XMPP协议原理及相关信息。 XMPP协议简介 XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。 在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程 序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。 1. 什么是XMPP ? XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分; 核心的XML流传输协议 基于XML流传输的即时通讯扩展应用 XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。 2. XMPP的基本网络结构是怎样的? XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。 3. XMPP通过TCP传什么了? 传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行苻的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。这不但使得解析容易了,人也容易阅读了,方便了开发和查错。而XMPP的核心部分就是一个在网络上分片断发送XML的流协议。这个流协议是XMPP的即时通讯指令的传递基础,也是一个非常重要的可以被进一步利用的网络基础协议。所以可以说,XMPP用TCP传的是XML流。 不重新编译PHP为PHP安装zlib扩展 2015年2月13日未分类qsr 编译PHP时未设置参数,导致缺少zlib扩展,无法执行解压缩,错误信息是:“Fatal error: Call to undefined function gzopen”。 首先找到当初编译PHP时的目录,如果没了就找一个相同版本的解压缩,解压缩到php(假设)目录下,然后以root身份进入php/ext/zlib/目录下 执行phpize,报错:“Cannot find config.m4.”,我找了半天没找到这个文件,但是看到一个类似的“config0.m4”,就cp了一个: cp config0.m4 config.m4 这个解决方法有点山寨,我也不知道啥意思,为什么多了一个0,反正亲自测了能行。 再执行phpize,又报错:“Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.” 原来是autoconf不存在,通过yum安装: yum -y install autoconf 再执行phpize,嗯,再敢报错看我不打断你的狗腿!!这次顺利的执行完了。 # phpize Configuring for: PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525 在这个目录就生成了一个configure脚本,再执行以下代码获得php-config脚本的位置备用: # which php-config /usr/local/bin/php-config(你的电脑上未必是这个结果) 再执行以下代码获得zlib的位置备用: # find / -name zlib.h /usr/include/zlib.h 都准备好之后就开始执行配置 ./configure --with-php-config=/usr/local/bin/php-config --with-zlib=/usr 注意:–with-zlib=/usr这里不需要把文件目录写全,写到这里就行了,PHP的扩展在编译时都是这个德性,习惯就好了。 然后就是正式的编译和安装了: make && make install 顺利的话,最终会提示: Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20100525/ 然后在php.ini的最后增加这么一句: extension=zlib.so 再重启php的CGI或者FastCGI或者php-fpm就可以了 发表回复 近期文章 XMPP协议实现原理介绍 不重新编译PHP为PHP安装zlib扩展 文章归档 2015年二月 分类目录 未分类 粤ICP备14070365号-2 自豪地采用WordPress
© 2010 - 2020 网站综合信息查询 同IP网站查询 相关类似网站查询 网站备案查询网站地图 最新查询 最近更新 优秀网站 热门网站 全部网站 同IP查询 备案查询
2024-11-16 04:14, Process in 0.0057 second.