CN102594845B - 一种基于xmpp协议的即时消息传输方法 - Google Patents

一种基于xmpp协议的即时消息传输方法 Download PDF

Info

Publication number
CN102594845B
CN102594845B CN201210087194.4A CN201210087194A CN102594845B CN 102594845 B CN102594845 B CN 102594845B CN 201210087194 A CN201210087194 A CN 201210087194A CN 102594845 B CN102594845 B CN 102594845B
Authority
CN
China
Prior art keywords
client
server
xmpp
user
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210087194.4A
Other languages
English (en)
Other versions
CN102594845A (zh
Inventor
裴文江
王晓姝
张书强
王开
孙庆庆
张毅峰
杨洋
詹金狮
第伟
朱光辉
缪瑞华
沈彦真
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201210087194.4A priority Critical patent/CN102594845B/zh
Publication of CN102594845A publication Critical patent/CN102594845A/zh
Application granted granted Critical
Publication of CN102594845B publication Critical patent/CN102594845B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于XMPP协议的即时消息传输方法,使用开源的Openfire作为服务器,以Spark客户端作为主要客户端框架,采用Java语言在Smack客户端库编写一个基于XMPP协议的客户端,以Xampp软件中的MySQL作为数据库,采用XMPP技术、SOCKS技术、数据库技术和套接字技术,成功实现企业内部以及企业外部的即时消息之间的数据传输。本发明不仅能很好的满足用户的基本需求、管理需求与功能性需求外,还能达到较高的安全性,可扩展性,实现与其他即时通信系统的互联互通。

Description

一种基于XMPP协议的即时消息传输方法
技术领域
本发明是基于企业即时消息技术在融合通信中的应用,在网页版的融合通信终端实现与企业即时通信系统之间连接的功能。
背景技术
信息技术发展到今天,人们希望方便快捷、无处不在地享用网络信息技术,通信与计算机技术的融合应用是信息产业发展的趋势,简单的、安全的、费用低廉的,可以随时随地接入的融合通信,是人们的最高期望。
技术的不断成熟,使得即时消息系统越来越丰富,因而当人们需要使用多个聊天工具时,就使得人们使用的方便性降低,而且对计算机资源的消耗也大大增加。此背景下,开发人员就希望能将多种即时消息工具集成到一起,于是就诞生了多协议IM技术。例如,国内MyIM,同时支持MSN、QQ等五种协议;国外的Miranda IM 支持ICQ、AIM、MSN等协议;开源项目Open fire和Spark支持多操作系统,可以通过插件方式对即时消息协议进行扩充,而且Spark开源代码中用户界面部分和Openfire负责后台协议解析进行通信。
一般地,目前支持多协议即时消息的软件产品都是以客户端软件的方式提供给用户,用户在使用之前需要在个人的电脑上进行安装设置。企业级即时通信系统的出现,在传统的即时通信的灵活、快捷、方便等优势的基础上,更重要的在安全性、可管理性、可追溯性、可扩展性等方面都得到了一定程度的保障。由于各大厂商都有自己的IM产品,出于各自利益的考虑,大部分都采用了自己私有的通信协议,这在一定程度上阻碍了使用不同即时通信系统的企业与企业之间的沟通交流,因此在企业级即时通信的产品中急需一种使用开放式的即时通信协议的EIM以实现不同工具之间的互通互联,使EIM更加便利。
UC(Unified Communication,融合通信),也常翻译为统一通信。融合通信是指,把计算机技术与传统通信技术融合一体的新通信模式,融合计算机网络与传统通信网络在一个网络平台上,实现电话、传真、数据传输、音视频会议、呼叫中心、即时通信等众多应用服务。融合通信将话音、视频、短信、即时消息等多种应用融合在一起,其手段也是丰富多彩的,可以体现在网络的融合、终端的融合、应用的融合等各个层面。
以下介绍一下本发明所涉及的几种网络技术:
1、XMPP技术:
XMPP(Extensible Messaging and Presence Protocol,可扩展消息与出席协议)是一种基于可扩展标记语言XML的开放式协议。一个XML流相当于一个会话期间所有XML节的一个信封,客户端或服务器发送的所有XML文本连缀在一起,从<stream>到</stream>构成了一个完整的XML文档,其中的stream标签就是XML Stream。在<stream>与</stream>中间的那些<message></message>这样的XML元素就是XML Stanza(XML节)。XMPP协议的核心协议通信的基本模式就是先建立一个stream,通过TCP/IP连接到服务器,然后协商TLS和SASL进行身份验证和安全协商,通信过程就是在网络上分片断发送XML Stanza,一个接一个。服务器根据客户端发送的信息以及程序的逻辑,发送XML Stanza给客户端。通信的最后阶段是</stream>关闭流,关闭TCP/IP连接。这个流协议是XMPP的即时通讯指令的传递手段,也是一个非常重要的可以被进一步利用的网络基础协议。所以,XMPP就是在TCP连接上传输XML流。
2、SOCKS技术:
SOCKS代理工作在TCP/IP模型的线路层(即应用层和传输层之间)。SOCKS 5技术,其具体工作方案为客户端首先和SOCKS 5代理服务器建立连接,然后客户端所有的数据包都以TCP数据包的方式发送到代理服务器,然后代理服务器帮助转发所有的请求。对于接收端来说,它认为所有的请求都来自代理服务器,把代理服务器作为客户进行通信,代理服务器接收远端发送来的消息后,根据客户列表把数据分发给不同的客户。
其工作流程为:
(1)      客户端向代理服务器建立TCP连接;
(2)      向代理服务器发送代理请求信息;
(3)      接收代理的应答,根据相应标志判断是否允许代理;
(4)      客户端向代理发送协商请求信息及相关端口信息;
(5)      代理返回协商请求结果及代理端口等信息;
(6)      客户端将数据发送到代理服务器并由其代理进行数据传送等操作。
3、数据库技术:
数据库技术是该系统的一个核心技术,是一种计算机辅助管理数据的方法,它研究如何组织和存储数据,如何高效地获取和处理数据。通过对数据库结构、存储、设计、管理以及应用的基本理论和实现方法的研究,并利用这些理论来实现对数据库中的数据进行处理、分析和理解的技术。
数据库中常见的数据模型主要有层次模型,网状模型和关系模型3种。MYSQL数据库是一个小型关系型数据库管理系统。
4、套接字技术
套接字,也称之为"socket",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
Socket实质上提供了进程通信的端点,进程通信之前,双方首先必须各自创建一个端点,否则是没有办法建立联系并相互通信的,正如打电话之前,双方必须各自拥有一台电话机一样。在网间网内部,每一个socket用一个半相关描述:(协议,本地地址,本地端口),一个完整的socket有一个本地唯一的socket号,由操作系统分配。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。   
(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
(3)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
5、网关技术
网关,又称网间连接器、协议转换器。网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。采用网关技术,一方面满足了不同用户群之间相互交流的需要,另一方面对于IM服务用户来说,只需对外提供一个信息转换的网关接入点,无需对原有协议作过多改变。
XMPP网关的主要功能是把XMPP消息翻译成使用非XMPP的IM的通信格式,同时把非XMPP的IM系统返回的数据翻译回XMPP消息。非XMPP的IM有AIM、ICQ、MSN、QQ等。
XMPP系统中网关是通过传输器组件(Transport)实现的。其工作原理为:XMPP系统的客户端发送消息给非XMPP系统的客户端,首先指明一个包含非XMPP系统名的JID,而不是直接发送给外部IM系统上的用户。其次,XMPP服务器将数据发送到指定的传输器应用程序,如果传输器是本地的,则XMPP服务器直接与其进行通信;如果传输器不在本地运行,本地服务器发送一个包给远程服务器,该远程服务器将会把包发送给指定的传输器。一旦传输器接收到XML包,它把信息“转变”成另一个IM网络中可以识别的本地包,并把这个本地包传送到那个IM网络中。
发明内容
本发明所要解决的技术问题是针对使用不同即时通信系统的企业与企业之间的沟通交流的问题,基于XMPP协议及其扩展协议,设计一种基于XMPP协议的即时消息传输技术的方法。 
本发明为解决上述技术问题,采用以下技术方案:
一种基于XMPP协议的即时消息传输方法,使用开源的Openfire作为服务器,以Spark客户端作为主要框架,以MySQL作为数据库,采用XMPP技术、SOCKS技术、数据库技术,套接字技术和网关技术,在Smack客户端库建立一个基于XMPP协议的客户端,实现企业内部以及企业外部的即时消息之间的数据传输;其中:
所述基于XMPP协议的客户端进行数据传输的过程如下:
A、实现用户注册功能: 
步骤A1:采用用户注册模块初始化注册界面;用户在注册界面中输入用户名、密码、确认密码和服务器的IP,将上述信息发送至用户注册模块;
步骤A2:用户注册模块验证用户输入信息是否有效;当用户输入的数据无误,则继续下一步骤;
步骤A3:读取服务器主机名和端口号;客户端通过协议解析模块将用户注册信息转换为XMPP请求数据;
步骤A4:客户端通过底层通信模块与服务器建立连接,向服务器发送用户注册请求;
步骤A5:通过底层通信模块监听来自服务器的响应,客户端启动监听时延;
步骤A6:判断在时延内客户端是否收到来自服务器的响应,若收到响应,进一步判定该响应是否有误;若没有错误,则协议解析模块处理响应,并在客户端界面显示用户注册成功,结束用户注册操作;若响应有误,则客户端界面显示用户注册失败,结束用户注册操作;
B、实现用户登录功能:    
步骤B1:启动客户端登陆界面后,采用用户登录模块进行初始化工作;
步骤B2:用户在客户端的用户登录界面输入用户名、密码和服务器的IP,将上述信息发送至用户登录模块;
步骤B3:用户登录模块获取输入信息,然后读取服务器的主机名和密码;
步骤B4:通过客户端后台的协议解析模块将登录信息解析为XMPP数据请求包;
步骤B5:通过底层通信模块与服务器建立连接,向服务器发送用户登录请求;
步骤B6:客户端创建新的监听,并设立时延;
步骤B7:判断在时延内客户端是否收到来自服务器的响应,若收到,进一步判断该响应是否有误,若没有错误,则协议解析模块处理响应,并在客户端界面显示用户登录成功,结束用户登录操作;若响应有误,则客户端界面显示用户登录失败,结束用户登录操作;
C、实现状态订阅功能:
步骤C1:客户端与服务器建立连接;
步骤C2:客户端向服务器申请获取好友名册中好友名单;
步骤C3:服务器判断好友名单中的第一个好友是否在线,若在线,则产生该好友上线的通知XML流发送给登录用户并告知该好友用户登录的状态,若不在线,继续判断第二个好友是否在线,依次类推,直至查询完好友名单中的所有好友;
D、实现好友名册管理功能:
步骤D1:客户端与服务器建立连接; 
步骤D2:客户端向服务器提出查询好友列表请求;
步骤D3:服务器响应请求并以登录用户的JID为参数在好友列表查找其好友的JID,然后再根据查询数据库得到的好友信息结果中的好友JID,查询他们的在线状态,然后将这些信息组合成XMPP协议的XML流返回给登录用户;
步骤D4:客户端显示好友列表;
E、实现添加好友功能:
步骤E1:客户端前端向服务器发出添加好友的请求;
步骤E2:客户端的协议解析模块解析出要添加的好友的JID;
步骤E3:客户端在本地搜索要添加的好友是否存在,若存在,则返回前端提示该用户已是好友,无需添加,结束操作;若不存在,则通过底层通信模块向服务器请求,通过服务器的数据访问模块以JID为条件在数据库中的用户表中查找该好友;
步骤E4:若数据库中的用户表中存在该好友,则服务器端将结果返回给客户端,并将所述JID插入到好友列表中,通过底层通信模块,返回包含有该好友的信息的XML,提示添加好友成功,结束操作;
步骤E5:若数据库中的用户表中不存在该好友,则向客户端返回添加失败的XML流,提示不存在此用户; 
F、实现删除好友功能:
步骤F1:客户端前端向服务器发出删除好友的请求;
步骤F2:服务器在收到客户端发来的请求之后,通过协议解析模块解析XML流,并获取需要删除的好友的JID;
步骤F3:服务器通过数据库访问模块在数据库的好友列表中查询该用户,并将其删除;
步骤F4:若删除成功,则向客户端返回相应的XML流,提示客户端好友删除成功,结束操作;
步骤F5:若删除失败,则向客户端返回相应的XML流,提示客户端删除失败;
G、实现客户端与服务器之间的会话功能:
步骤G1:源客户端通过底层通信功能模块向第一XMPP服务器发送建立会话的请求;
步骤G2:第一XMPP服务器在收到源客户端的请求之后通过TLS,SASL进行安全、身份验证,若通过,则向源客户端返回确认建立连接的响应;
步骤G3:源客户端通过协议解析功能模块获取客户端界面的消息并将其封装成XMPP数据包,然后通过底层通信功能模块向XMPP服务器发送会话内容;
步骤G4:第一XMPP服务器通过协议解析模块进行XMPP数据包解析,获取数据包中目的客户端的JID,通过数据库访问模块查询数据库;
步骤G5:若目的客户端在本地服务器中,并且目的客户端在线,则直接将数据包转发给目的客户端,结束会话并关闭连接;若目的客户端不在线,则将XMPP数据包通过数据库访问模块将XMPP数据包存入第一XMPP服务器的数据库,待目的客户端上线后进行数据转发;
步骤G6:若目的客户端不在本地服务器中,则服务器向DNS服务器发送申请解析域名的请求;
步骤G7:采用DNS服务器搜索目的客户端所在的第二XMPP服务器,同时向第一XMPP服务器返回解析后的域名;
步骤G8:第一XMPP服务器通过TCP三次握手、TLS、SASL以及服务器回拨功能进行安全、身份验证,向第二XMPP服务器发送连接请求;
步骤G911:第二XMPP服务器通过底层通信模块向第一XMPP服务器发送请求响应,若目的客户端在线状态,则建立二者之间的连接,转向步骤G10;若目的客户端不在线,则将XMPP数据包存入第一XMPP服务器的数据库中,待目的客户端上线后再将该信息转发;
步骤G10:第一XMPP服务器向第二XMPP服务器转发由源客户端发送的XMPP数据包;
步骤G11:第二XMPP服务器直接将XMPP数据包转发到目的客户端,结束会话并关闭连接;
步骤G12:源客户端通过协议解析模块获取XMPP数据包之后,通过协议网关,将数据包发送到非XMPP系统的服务器,再由非XMPP系统的服务器将数据包转发到非XMPP系统的客户端;
H、实现文件传输功能:
步骤H1:源客户端向XMPP服务器发送向目的客户端传输文件的请求;
步骤H2:XMPP服务器通过数据访问模块访问数据库判断目的客户端是否属于本地服务器,若目的客户端不属于本地服务器,则将请求转向代理服务器,转向步骤H5;
若目的客户端属于本地服务器,则判断目的客户端是否在线:若在线,则向目的客户端发送源客户端文件传输的请求,并向源客户端返回目的客户端的JID,转向步骤H3;若不在线,则将传输文件请求存放在服务器的缓冲区,等目的客户端在线时,直接从缓冲区提取文件并转发给目的客户端,转向步骤H12;
步骤H3:目的客户端响应XMPP服务器传输文件的请求,XMPP服务器将响应发送给源客户端;
步骤H4:源客户端向XMPP服务器传输文件,XMPP服务器直接将文件转发给目的客户端,转向步骤H12;
步骤H5:目的客户端为代理服务器打开一个TCP socket连接;
步骤H6:代理服务器通过SOCKS 5与目的客户端建立连接,设定目标地址和目标端口参数的值;
步骤H7:代理服务器通过SOCKS 5发送连接成功并确认至源的客户端;
步骤H8:源客户端为代理服务器打开一个TCPsocket连接;
步骤H9:源客户端通过SOCKS 5向代理服务器请求建立连接,设定目标地址和目标端口参数的值;
步骤H10:若成功建立连接,源客户端通过SOCKS 5发送连接成功确认至目的客户端端;
步骤H11:源客户端和目的客户端通过SOCKS 5代理服务器,再由SOCKS 5服务器转发给XMPP服务器可以成功实现文件的传输;
步骤H12:文件成功传输之后,关闭源客户端和目的客户端之间的连接;
I、实现IM互相通信功能:XMPP系统的客户端发送消息给非XMPP系统的客户端,
首先指明一个包含非XMPP系统名的JID;
其次,XMPP服务器将数据发送到指定的传输器应用程序,如果传输器是本地的,则XMPP服务器直接与其进行通信;如果传输器不在本地运行,本地服务器发送一个包给远程服务器,该远程服务器将会把包发送给指定的传输器;
一旦传输器接收到XML包,即把信息转变成另一个IM网络中可以识别的本地包,并把这个本地包传送到那个IM网络中。
本发明采用以上技术方案具有以下技术效果:
采用本发明的方法不仅能够很好的满足用户的基本需求、管理需求与功能性需求外,而且达到较高的安全性,可扩展性,实现与其他即时通信系统的互联互通。
附图说明
图1:本发明的网络架构图。
图2:本发明架构的拓扑连接图。
图3:XML流传输过程分层结构示意图。
图4:客户端功能图。
图5:用户注册登录图。
图6:用户登录流程图。
图7:好友上线通知流程图。
图8:获取并显示好友列表功能流程图。
图9:添加好友流程图。
图10:删除好友流程图。
图11:发送消息流程图。
图12:接收消息流程图。
图13:文件传输功能流程图。
图14:IM系统互相通信网络图。
具体实施方式
下面结合附图对本发明的技术方案进行详细的说明:
图1是本发明的网络架构图,由其可知,本发明用的是基于XMPP协议的开源的Openfire作为服务器并将其部署到Eclipse平台里并成功运行,实现用户的注册以及数据库的连接等功能。而客户端是在Spark客户端的基础上,根据企业内部通信的要求,开发出的符合企业要求的客户端。
图2是本发明架构的拓扑连接图,由其可知,本发明采用Client—Sever架构进行实现的。在 XMPP中定义了三个角色:客户端、服务器、网关。其中,客户端通过TCP的方式使用XMPP访问服务器,服务器也使用TCP的方式进行通信。
图3是 XML流传输过程分层结构示意图,由其可知,XML流在客户端和服务器之间分层传输的过程。
图4是基于XMPP协议的客户端功能图,由其可知,本系统客户端需要设计实现的各个功能。
图5是客户端用户注册流程图,由其可知,用户在客户端界面注册时,数据从客户端到服务器以及从服务器到客户端被处理的整个流程,负责新用户的注册处理。
步骤01:用户注册模块初始化注册界面;
步骤02:用户在注册界面中输入用户名、密码、确认密码和服务器的IP,点击注册按钮;
步骤03:用户注册模块监听来自鼠标的请求,并从输入框中获取输入信息同时进行验证信息是否有效;
步骤04:若用户输入的数据有误,则提示用户输入有误;如果用户输入的数据无误,则继续下一步骤;
步骤05:读取服务器主机名和端口号;
步骤06:客户端通过协议解析模块将用户注册信息转换为XMPP请求数据;
步骤07:客户端通过底层通信模块建立连接,向服务器发送用户注册请求;
步骤08:通过底层通信模块监听来自服务器的响应,客户端启动监听时延;
步骤09:在时延内客户端是否收到来自服务器的响应,若收到,判定响应是否有误,若没有错误,则协议解析模块处理响应,并在客户端界面显示用户注册成功,转向步骤11;
步骤10:若响应有误,则客户端界面显示用户注册失败,转向步骤11;
步骤11:结束用户注册操作。
图6是客户端用户登录流程图,由其可知,用户在客户端登录时,数据从客户端到服务器以及从服务器到客户端被处理的整个流程。登录验证服务是对试图登录的客户端进行权限验证。
步骤01:启动客户端登陆界面后,用户登录模块进行初始化工作;
步骤02:用户在客户端的用户登录界面输入用户名、密码和服务器的IP,填写完毕之后点击登录按钮;
步骤03:用户登录模块 监听到鼠标操作事件,从登录界面的输入框中获取输入信息,然后读取服务器的主机名和密码;
步骤04:通过客户端后台的协议解析模块将登录信息解析为XMPP数据请求包;
步骤05:通过底层通信模块建立连接,向服务器发送用户登录请求;
步骤06:客户端创建新的监听,并设立时延;
步骤07:在时延内客户端是否收到来自服务器的响应,若收到,判定响应是否有误,若没有错误,则协议解析模块处理响应,并在客户端界面显示用户登录成功,转向步骤09;
步骤08:若响应有误,则客户端界面显示用户登录失败,转向步骤09;
步骤09:结束用户登录操作。
状态订阅:一个用户可以订阅其他好友的在线信息,一个订阅本质上是被订阅者同意发送在线状态改变给订阅者。这个信息同时存储在订阅者和被订阅者的名单中。当用户通过认证并在服务器上创建一个会话时,用户的在线信息被存放到服务器的好友列表管理器中。当在线状态改变时,<Presence/>包将被服务器处理,服务器在好友名单中进行查询,并将在线信息状态包发送给所有订阅用户在线状态的实体。
在用户成功登录到XMPP服务器之后,默认状态显示为在线。但是用户可以根据自己的需要来改变自己的状态,并且立即通知好友列表中的每一个联系人。此时只需客户端向服务器发送改变状态的通知,内容可以为:忙,暂时离开或者其它用户想要显示的信息。这时服务器便会向该用户的好友列表的成员发送载有相应信息的XML流。
图7是客户端好友上线通知流程图,由其可知,好友上线状态被处理后通过服务器在用户端显示的整个流程。
当用户登录到服务器端的时候,应当通知其所有的好友。在花名册服务中服务器端己经获得了登录用户的好友列表,因此服务器端此时可以根据其好友列表产生相应的通知并以XML 流形式发送。
以下为实现流程(客户端已经成功与服务器建立连接):
步骤01:客户端向服务器好友名册中申请获取好友名单;
步骤02:服务器判断好友是否在线,若在线,则产生好友上线的通知XML流发送给登录用户并告知各位好友用户登录的状态,转向04;
步骤03:若不在线,则查询好名名单的下一位好友,转向02;
步骤04:结束该功能。
图8是客户端获取并显示好友列表流程图,由其可知,好友列表数据通过服务器处理并在用户端显示的整个流程。
好友列表功能的实现是在用户登录到服务器上之后立即发生的服务,该项功能的目的在于通过查询得到自己的好友名册列表,服务器以登录用户的JID为参数在好友列表查找其好友的JID。然后再根据查询数据库得到的好友信息结果中的好友JID,查询他们的在线状态,然后将这些信息组合成XMPP协议的XML流返回给用户,用户将好友及其状态列表在客户端显示出来。
以下为好友列表获取及显示的流程(客户端已经成功与服务器建立连接):
步骤01:客户端向服务器提出查询好友列表请求;
步骤02:服务器响应请求并将好友列表以XML流发送给登录用户;
步骤03:客户端显示好友列表;
步骤04:结束该功能。
图9是客户端添加好友流程图,由其可知,用户在客户端界面添加好友时,数据从客户端到服务器以及从服务器到客户端被处理的整个流程。
添加好友功能是该系统的一项非常重要的功能,用户可以随意地添加新的好友。
以下为添加好友流程:
步骤01:客户端前端向服务器发出添加好友的请求;
步骤02:客户端的协议解析模块解析出要添加的好友的JID;
步骤03:客户端在本地搜索要添加的好友是否存在,若存在,则返回前端提示该用户已是好友,无需添加,转向步骤06;若不存在,则通过底层通信模块向服务器请求,通过服务器的数据访问模块以JID为条件在数据库中的用户表中查找该好友;
步骤04:若数据库中好友存在,则服务器端将结果返回给客户端,并将JID插入到好友列表中,通过底层通信模块,返回包含有该好友的信息的XML,提示添加好友成功,转向步骤六;
步骤05:若数据库中好友不存在,则向客户端返回添加失败的XML流,提示不存在此用户;
步骤06:结束添加好友功能。
图10是客户端删除好友流程图,由其可知,用户在客户端界面删除好友时,数据从客户端到服务器以及从服务器到客户端被处理的整个流程。
删除好友也是该系统的一项重要的功能,其作用是删除好友列表的某一用户。
以下为删除好友流程:
步骤01:客户端前端向服务器发出删除好友的请求;
步骤02:服务器在收到客户端发来的请求之后,通过协议解析模块解析XML流,并获取需要删除的好友的JID;
步骤03:服务器通过数据库访问模块在数据库的好友列表中查询该用户,并将其删除;
步骤04:若删除成功,则向客户端返回相应的XML流,提示客户端好友删除成功,转向步骤六;
步骤05:若删除失败,则向客户端返回相应的XML流,提示客户端删除失败;
步骤06:删除好友操作结束。
会话功能:客户端为用户提供了相互会话的功能,即相互发送即时消息,该功能是即时消息系统的最基本的功能。会话功能模块将客户端界面输入的文字消息解析为XMPP的<message/>消息节后,通过底层通信模块将消息发送到服务器,同时持续监听来自服务器的<message/>消息节,当接收到<message/>消息节之后,将<message/>消息转换为文字消息显示到聊天室的界面中。
本项目中的即时消息系统有三种会话方式:第一种为连接在同一个XMPP服务器上的两个用户之间的会话;第二种为连接在不同XMPP服务器上的两个用户之间的会话;第三种为XMPP系统的用户和非XMPP系统的用户之间的会话,会话是在聊天室中进行的。
会话功能模块中需要包括四个功能的实现用以满足用户的需求,即初始化聊天室、发送即时消息、接收即时消息和聊天室管理器。
图11是客户端发送消息流程图,由其可知,用户在客户端界面输入消息并且发送时,数据从客户端到服务器以及从服务器到客户端被处理的整个流程。
图12是客户端接收消息流程图,由其可知,用户在客户端界面接收消息并且显示时,数据从好友客户端到服务器以及从服务器到用户客户端被处理的整个流程。
客户端与服务器之间会话的步骤为:
步骤01:源客户端通过底层通信功能模块向XMPP 1服务器发送建立会话的请求;
步骤02:XMPP服务器1在收到源客户端的请求之后通过TLS,SASL进行安全、身份验证,若通过,则向源客户端返回确认建立连接的响应;
步骤03:源客户端通过协议解析功能模块获取客户端界面的消息并将其封装成XMPP数据包,然后通过底层通信功能模块向XMPP服务器发送会话内容;
步骤04:XMPP服务器1通过协议解析模块进行XMPP数据包解析,获取数据包中目的客户端的JID,通过数据库访问模块查询数据库。
步骤05:若目的客户端在本地服务器中,并且在线,则直接将数据包转发给目的客户端,转向步骤十六;
步骤06:若目的客户端不在线,则将XMPP数据包通过数据库访问模块将XMPP数据包存入XMPP服务器1的数据库,待目的客户端上线后进行数据转发;
步骤07:若目的客户端不在本地服务器中,转向步骤八和步骤十五;
步骤08:若目的客户端不在本地服务器中,则服务器向DNS服务器发送申请解析域名的请求;
步骤09:DNS服务器搜索目的客户端所在的XMPP服务器2是否存在,同时向XMPP服务器1返回解析后的域名;
步骤10:XMPP服务器1通过TCP三次握手、TLS、SASL以及服务器回拨功能进行安全、验证向XMPP服务器2发送连接请求;
步骤11:XMPP服务器2通过底层通信模块向XMPP服务器1发送请求响应,若目的客户端在线状态,则建立二者之间的连接,转向步骤十三;
步骤12:若目的客户端不在线,则将XMPP数据包存入XMPP服务器1的数据库中,待目的客户端上线后再将该信息转发;
步骤13:XMPP服务器1向XMPP服务器2转发由源客户端发送的XMPP数据包;
步骤14:XMPP服务器2直接将XMPP数据包转发到目的客户端,转向步骤十六;
步骤15:源客户端通过协议解析模块获取XMPP数据包之后,通过协议网关,将数据包发送到非XMPP系统的服务器,再由非XMPP系统的服务器将数据包转发到非XMPP系统的客户端;
步骤16:会话结束,关闭连接。
图13是客户端文件传输流程图,由其可知,用户在客户端界面传输文件,文件从用户客户端到服务器以及从服务器到好友客户端被处理的整个流程。
步骤01:源客户端向XMPP服务器发送向目的客户端传输文件的请求;
步骤02:XMPP服务器通过数据访问模块访问数据库判断目的客户端是否属于本地服务器,若是,则判断目的客户端是否在线,若在线,则向目的客户端发送源客户端文件传输的请求,并向源客户端返回目的客户端的JID,转向步骤五; 
步骤03:若不属于本地服务器,则若不在,则将请求转向代理服务器,转向步骤七;
步骤04:若不在线,则将传输文件请求存放在服务器的缓冲区,等目的客户端在线时,直接从缓冲区提取文件并转发给目的客户端,转向步骤十四;
步骤05:目的客户端响应XMPP服务器传输文件的请求,XMPP服务器将响应发送给源客户端;
步骤06:源客户端向XMPP服务器传输文件,XMPP服务器直接将文件转发给目的客户端,转向步骤十四;
步骤07:目的客户端为代理服务器打开一个TCP socket连接;
步骤08:代理服务器通过SOCKS 5与目的客户端建立连接,设定目标地址和目标端口参数的值;
步骤09:代理服务器通过SOCKS 5发送连接成功并确认至源的客户端;
步骤10:源客户端为代理服务器打开一个TCPsocket连接;
步骤11:源客户端通过SOCKS 5向代理服务器请求建立连接,设定目标地址和目标端口参数的值;
步骤12:若成功建立连接,源客户端通过SOCKS 5发送连接成功确认至目的客户端端;
步骤13:源客户端和目的客户端通过SOCKS 5代理服务器,再由SOCKS 5服务器转发给XMPP服务器可以成功实现文件的传输;
步骤14:文件成功传输之后,关闭源客户端和目的客户端之间的连接。
图14是IM系统互相通信图,由其可知,XMPP系统与非XMPP系统之间数据通信。
XMPP系统的客户端发送消息给非XMPP系统的客户端,首先指明一个包含非XMPP系统名的JID,而不是直接发送给外部IM系统上的用户。其次,XMPP服务器将数据发送到指定的传输器应用程序,如果传输器是本地的,则XMPP服务器直接与其进行通信;如果传输器不在本地运行,本地服务器发送一个包给远程服务器,该远程服务器将会把包发送给指定的传输器。一旦传输器接收到XML包,它把信息“转变”成另一个IM网络中可以识别的本地包,并把这个本地包传送到那个IM网络中。
本发明公开了一种基于XMPP协议的即时消息传输方法,使用开源的Openfire作为服务器,以Spark作为客户端的主要框架,采用Java语言,Smack客户端库编写一个基于XMPP协议的客户端,以Xampp软件中的MySQL作为数据库,采用XMPP技术、SOCKS技术、数据库技术和套接字技术,成功实现企业内部以及企业外部的即时消息之间的数据传输。本发明不仅能很好的满足用户的基本需求、管理需求与功能性需求外,还能达到较高的安全性,可扩展性,实现与其他即时通信系统的互联互通。
在实现企业内部的功能时,采用不改变原有服务器和客户端基础架构的条件下,利用插件的方式成功实现功能的扩展。通过利用网关来成功实现企业内部服务器与其它IM服务器之间的数据通信。
综上所述,本发明内容主要包括以下三方面:
1.采用Java程序设计语言,完成本系统中客户端在Eclipse平台中的设计与实现。
客户端主要是根据企业自身特点,向用户提供实时信息交换。其开发包括前端界面的设计和实现和后端数据平台功能模块的设计与实现,而功能主要包括:用户的注册、用户登录功能、好友列表管理(包括状态的显示和更改、添加用户、删除用户和搜索好友)、个人名片管理、会话功能、文件传输功能和与其他IM通信功能等。 
2.完成本系统中服务器在Eclipse中的成功部署和运行。
实现本系统中服务器和客户端之间以及客户端之间的互相通信。包括客户端和服务器之间的连接,数据的通信,用户的添加、存储、查询、更新和删除,用户状态的设置,好友状态的获取,注销等功能。
3.完成本系统中的服务器向其他各种IM服务器(例如微软的MSN服务器,Google的Gtalk服务器等)的连接,用户状态设置,好友状态获取,数据通信,注销等功能。
本发明的目标是实现在企业内部web客户端之间以及本服务器与其它IM服务器之间的信息交互。
首先在客户端的个人信息中注册用户的号码,并进行验证,然后实现用户登录。用户的状态分为在线、忙碌、离开,当用户状态发生变化时,客户端能成功显示。
其次,企业内部服务器与客户端之间,客户端与客户端之间实现信息交互;
再次,在企业内部的客户端登录页面输入其他IM系统的用户帐号,验证成功后登录到其他IM服务器并与之进行信息交互。

Claims (1)

1.一种基于XMPP协议的即时消息传输方法,其特征在于:使用开源的Openfire作为服务器,以Spark客户端作为主要框架,以MySQL作为数据库,采用XMPP技术、SOCKS技术、数据库技术,套接字技术和网关技术,在Smack客户端库建立一个基于XMPP协议的客户端,实现企业内部以及企业外部的即时消息之间的数据传输;其中:
所述基于XMPP协议的客户端进行数据传输的过程如下:
A、实现用户注册功能: 
步骤A1:采用用户注册模块初始化注册界面;用户在注册界面中输入用户名、密码、确认密码和服务器的IP,将上述用户名、密码、确认密码和服务器的IP信息发送至用户注册模块;
步骤A2:用户注册模块验证用户输入信息是否有效;当用户输入的数据无误,则继续下一步骤;
步骤A3:读取服务器主机名和端口号;客户端通过协议解析模块将用户注册信息转换为XMPP请求数据;
步骤A4:客户端通过底层通信模块与服务器建立连接,向服务器发送用户注册请求;
步骤A5:通过底层通信模块监听来自服务器的响应,客户端启动监听时延;
步骤A6:判断在时延内客户端是否收到来自服务器的响应,若收到响应,进一步判定该响应是否有误;若没有错误,则协议解析模块处理响应,并在客户端界面显示用户注册成功,结束用户注册操作;若响应有误,则客户端界面显示用户注册失败,结束用户注册操作;
B、实现用户登录功能:    
步骤B1:启动客户端登陆界面后,采用用户登录模块进行初始化工作;
步骤B2:用户在客户端的用户登录界面输入用户名、密码和服务器的IP,将上述用户名、密码和服务器的IP信息发送至用户登录模块;
步骤B3:用户登录模块获取输入信息,然后读取服务器的主机名和密码;
步骤B4:通过客户端后台的协议解析模块将登录信息解析为XMPP数据请求包;
步骤B5:通过底层通信模块与服务器建立连接,向服务器发送用户登录请求;
步骤B6:客户端创建新的监听,并设立时延;
步骤B7:判断在时延内客户端是否收到来自服务器的响应,若收到,进一步判断该响应是否有误,若没有错误,则协议解析模块处理响应,并在客户端界面显示用户登录成功,结束用户登录操作;若响应有误,则客户端界面显示用户登录失败,结束用户登录操作;
C、实现状态订阅功能:
步骤C1:客户端与服务器建立连接;
步骤C2:客户端向服务器申请获取好友名册中好友名单;
步骤C3:服务器判断好友名单中的第一个好友是否在线,若在线,则产生该好友上线的通知XML流发送给登录用户并告知该好友用户登录的状态,若不在线,继续判断第二个好友是否在线,依次类推,直至查询完好友名单中的所有好友;
D、实现好友名册管理功能:
步骤D1:客户端与服务器建立连接; 
步骤D2:客户端向服务器提出查询好友列表请求;
步骤D3:服务器响应请求并以登录用户的JID为参数在好友列表查找其好友的JID,然后再根据查询数据库得到的好友信息结果中的好友JID,查询他们的在线状态,然后将这些信息组合成XMPP协议的XML流返回给登录用户;
步骤D4:客户端显示好友列表;
E、实现添加好友功能:
步骤E1:客户端前端向服务器发出添加好友的请求;
步骤E2:客户端的协议解析模块解析出要添加的好友的JID;
步骤E3:客户端在本地搜索要添加的好友是否存在,若存在,则返回前端提示该用户已是好友,无需添加,结束操作;若不存在,则通过底层通信模块向服务器请求,通过服务器的数据访问模块以JID为条件在数据库中的用户表中查找该好友;
步骤E4:若数据库中的用户表中存在该好友,则服务器端将结果返回给客户端,并将所述JID插入到好友列表中,通过底层通信模块,返回包含有该好友的信息的XML流,提示添加好友成功,结束操作;
步骤E5:若数据库中的用户表中不存在该好友,则向客户端返回添加失败的XML流,提示不存在此用户; 
F、实现删除好友功能:
步骤F1:客户端前端向服务器发出删除好友的请求;
步骤F2:服务器在收到客户端发来的请求之后,通过协议解析模块解析XML流,并获取需要删除的好友的JID;
步骤F3:服务器通过数据库访问模块在数据库的好友列表中查询该用户,并将其删除;
步骤F4:若删除成功,则向客户端返回相应的XML流,提示客户端好友删除成功,结束操作;
步骤F5:若删除失败,则向客户端返回相应的XML流,提示客户端删除失败;
G、实现客户端与服务器之间的会话功能:
步骤G1:源客户端通过底层通信功能模块向第一XMPP服务器发送建立会话的请求;
步骤G2:第一XMPP服务器在收到源客户端的请求之后通过TLS,SASL进行安全、身份验证,若通过,则向源客户端返回确认建立连接的响应;
步骤G3:源客户端通过协议解析功能模块获取客户端界面的消息并将其封装成XMPP数据包,然后通过底层通信功能模块向XMPP服务器发送会话内容;
步骤G4:第一XMPP服务器通过协议解析模块进行XMPP数据包解析,获取数据包中目的客户端的JID,通过数据库访问模块查询数据库;
步骤G5:若目的客户端在本地服务器中,并且目的客户端在线,则直接将数据包转发给目的客户端,结束会话并关闭连接;若目的客户端不在线,则将XMPP数据包通过数据库访问模块将XMPP数据包存入第一XMPP服务器的数据库,待目的客户端上线后进行数据转发;
步骤G6:若目的客户端不在本地服务器中,则服务器向DNS服务器发送申请解析域名的请求;
步骤G7:采用DNS服务器搜索目的客户端所在的第二XMPP服务器,同时向第一XMPP服务器返回解析后的域名;
步骤G8:第一XMPP服务器通过TCP三次握手、TLS、SASL以及服务器回拨功能进行安全、身份验证,向第二XMPP服务器发送连接请求;
步骤G9:第二XMPP服务器通过底层通信模块向第一XMPP服务器发送请求响应,若目的客户端在线状态,则建立二者之间的连接,转向步骤G10;若目的客户端不在线,则将XMPP数据包存入第一XMPP服务器的数据库中,待目的客户端上线后再将该信息转发;
步骤G10:第一XMPP服务器向第二XMPP服务器转发由源客户端发送的XMPP数据包;
步骤G11:第二XMPP服务器直接将XMPP数据包转发到目的客户端,结束会话并关闭连接;
步骤G12:源客户端通过协议解析模块获取XMPP数据包之后,通过协议网关,将数据包发送到非XMPP系统的服务器,再由非XMPP系统的服务器将数据包转发到非XMPP系统的客户端;
H、实现文件传输功能:
步骤H1:源客户端向XMPP服务器发送向目的客户端传输文件的请求;
步骤H2:XMPP服务器通过数据访问模块访问数据库判断目的客户端是否属于本地服务器,若目的客户端不属于本地服务器,则将请求转向代理服务器,转向步骤H5;
若目的客户端属于本地服务器,则判断目的客户端是否在线:若在线,则向目的客户端发送源客户端文件传输的请求,并向源客户端返回目的客户端的JID,转向步骤H3;若不在线,则将传输文件请求存放在服务器的缓冲区,等目的客户端在线时,直接从缓冲区提取文件并转发给目的客户端,转向步骤H12;
步骤H3:目的客户端响应XMPP服务器传输文件的请求,XMPP服务器将响应发送给源客户端;
步骤H4:源客户端向XMPP服务器传输文件,XMPP服务器直接将文件转发给目的客户端,转向步骤H12;
步骤H5:目的客户端为代理服务器打开一个TCP socket连接;
步骤H6:代理服务器通过SOCKS 5与目的客户端建立连接,设定目标地址和目标端口参数的值;
步骤H7:代理服务器通过SOCKS 5发送连接成功并确认至源的客户端;
步骤H8:源客户端为代理服务器打开一个TCPsocket连接;
步骤H9:源客户端通过SOCKS 5向代理服务器请求建立连接,设定目标地址和目标端口参数的值;
步骤H10:若成功建立连接,源客户端通过SOCKS 5发送连接成功确认至目的客户端端;
步骤H11:源客户端和目的客户端通过SOCKS 5代理服务器,再由SOCKS 5服务器转发给XMPP服务器可以成功实现文件的传输;
步骤H12:文件成功传输之后,关闭源客户端和目的客户端之间的连接;
I、实现IM互相通信功能:XMPP系统的客户端发送消息给非XMPP系统的客户端,
首先指明一个包含非XMPP系统名的JID;
其次,XMPP服务器将数据发送到指定的传输器应用程序,如果传输器是本地的,则XMPP服务器直接与其进行通信;如果传输器不在本地运行,本地服务器发送一个包给远程服务器,该远程服务器将会把包发送给指定的传输器;
一旦传输器接收到XML包,即把信息转变成另一个IM网络中可以识别的本地包,并把这个本地包传送到那个IM网络中。
CN201210087194.4A 2012-03-29 2012-03-29 一种基于xmpp协议的即时消息传输方法 Expired - Fee Related CN102594845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210087194.4A CN102594845B (zh) 2012-03-29 2012-03-29 一种基于xmpp协议的即时消息传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210087194.4A CN102594845B (zh) 2012-03-29 2012-03-29 一种基于xmpp协议的即时消息传输方法

Publications (2)

Publication Number Publication Date
CN102594845A CN102594845A (zh) 2012-07-18
CN102594845B true CN102594845B (zh) 2014-12-10

Family

ID=46483046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210087194.4A Expired - Fee Related CN102594845B (zh) 2012-03-29 2012-03-29 一种基于xmpp协议的即时消息传输方法

Country Status (1)

Country Link
CN (1) CN102594845B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110312101A (zh) * 2019-07-01 2019-10-08 杭州当虹科技股份有限公司 一种便携式实时移动人像布控系统的实现方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103885666A (zh) * 2012-12-20 2014-06-25 腾讯科技(深圳)有限公司 分享信息的传输处理方法和系统
CN103118069A (zh) * 2012-12-26 2013-05-22 上海现代先进超精密制造中心有限公司 基于xmpp协议的实现机顶盒之间即时通信的方法
US10108515B2 (en) 2013-03-01 2018-10-23 Sony Interactive Entertainment LLC Remotely testing electronic devices using messaging and presence protocol
CN103546771B (zh) * 2013-06-26 2017-08-08 Tcl集团股份有限公司 一种基于智能终端的电视节目评论处理方法及系统
CN104253808B (zh) * 2013-06-29 2018-05-08 北京新媒传信科技有限公司 即时通信系统中的状态呈现方法和状态呈现服务器
CN103532827A (zh) * 2013-09-03 2014-01-22 国家电网公司 一种通过扩展xmpp协议实现通信录功能的系统和方法
CN103516788A (zh) * 2013-09-13 2014-01-15 杭州东方通信软件技术有限公司 一种数据推送方法及其Flash客户端和服务器
CN103561079A (zh) * 2013-10-29 2014-02-05 重庆邮电大学 一种基于xmpp协议的无线传感器网络的数据交互方法
CN103685004A (zh) * 2013-12-18 2014-03-26 华南理工大学 一种支持企业级即时通信系统互联互通的协议网关及方法
CN103986639A (zh) * 2014-03-07 2014-08-13 杭州易和互联软件技术有限公司 一种多个独立部署的即时消息系统之间实现消息互联互通算法
CN103856394A (zh) * 2014-03-20 2014-06-11 沈阳化工大学 一种网络聊天室系统
CN105207878A (zh) * 2014-05-30 2015-12-30 北大方正集团有限公司 一种即时通讯的方法及系统
CN105227617A (zh) * 2014-07-04 2016-01-06 北京信威通信技术股份有限公司 基于xmpp的移动终端信息实时匹配及通知系统和方法
CN105323225B (zh) * 2014-07-24 2019-01-25 上海未来宽带技术股份有限公司 跨终端的交互通讯协议适配方法及系统
CN104333496A (zh) * 2014-09-26 2015-02-04 广东广联电子科技有限公司 一种智能家居服务器和智能家居系统
CN106572382A (zh) * 2015-10-12 2017-04-19 中兴通讯股份有限公司 多屏互动方法及系统、可扩展通讯和表示协议系统
CN105471964B (zh) * 2015-11-16 2019-02-01 中国建设银行股份有限公司 用于数据推送的方法、服务器、客户端以及系统
CN106375408A (zh) * 2016-08-30 2017-02-01 武汉恒力鼎立科技有限公司 一种基于互联网的通信系统
CN106487890A (zh) * 2016-10-11 2017-03-08 江苏电力信息技术有限公司 一种基于xmpp协议的跨节点通讯网络请求方法
CN108206818A (zh) * 2016-12-20 2018-06-26 中移(杭州)信息技术有限公司 一种消息系统登录方法、登录装置和即时消息服务器
CN106803990A (zh) * 2016-12-29 2017-06-06 山东广电网络有限公司 一种机顶盒终端与移动终端绑定系统
CN107147663A (zh) * 2017-06-02 2017-09-08 广东暨通信息发展有限公司 一种计算机集群系统的同步通讯方法和系统
CN107231295A (zh) * 2017-07-03 2017-10-03 深圳市乐唯科技开发有限公司 一种轻巧简便的社交交友聊天客户端搭建系统
CN107645567A (zh) * 2017-11-14 2018-01-30 中国科学院声学研究所 一种远程控制智能终端设备的方法
CN108111401B (zh) * 2017-12-28 2021-09-10 北信源系统集成有限公司 一种跨即时通信系统的建群方法
CN108234292A (zh) * 2017-12-28 2018-06-29 中国联合网络通信集团有限公司 通信系统及通信方法
CN113489634A (zh) * 2021-06-16 2021-10-08 中企链信(北京)科技有限公司 一种企业间协同即时通讯扩展方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068257A (zh) * 2007-05-31 2007-11-07 四川长虹电器股份有限公司 即时通信平台
CN101431479A (zh) * 2007-11-08 2009-05-13 华为技术有限公司 实现问答业务的方法、客户端和服务器
CN101488926A (zh) * 2009-02-27 2009-07-22 浪潮集团山东通用软件有限公司 一种基于xmpp协议和sms服务的网络消息通讯方法
CN101500210A (zh) * 2009-03-16 2009-08-05 北京北纬点易信息技术有限公司 基于xmpp协议的低传输负载的即时通信方法及其系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2106097A1 (en) * 2008-03-27 2009-09-30 Alcatel Lucent Method and device for providing peer-to-peer emergency service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068257A (zh) * 2007-05-31 2007-11-07 四川长虹电器股份有限公司 即时通信平台
CN101431479A (zh) * 2007-11-08 2009-05-13 华为技术有限公司 实现问答业务的方法、客户端和服务器
CN101488926A (zh) * 2009-02-27 2009-07-22 浪潮集团山东通用软件有限公司 一种基于xmpp协议和sms服务的网络消息通讯方法
CN101500210A (zh) * 2009-03-16 2009-08-05 北京北纬点易信息技术有限公司 基于xmpp协议的低传输负载的即时通信方法及其系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110312101A (zh) * 2019-07-01 2019-10-08 杭州当虹科技股份有限公司 一种便携式实时移动人像布控系统的实现方法
CN110312101B (zh) * 2019-07-01 2021-08-13 杭州当虹科技股份有限公司 一种便携式实时移动人像布控系统的实现方法

Also Published As

Publication number Publication date
CN102594845A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102594845B (zh) 一种基于xmpp协议的即时消息传输方法
US11855795B1 (en) Communication bridging in a remote office environment
CN101146051B (zh) 一种企业级即时通信互联系统及其实现企业互联的方法
CN103516715B (zh) 信息处理装置、信息处理方法、以及信息通信系统
JP4467220B2 (ja) 音声インスタント・メッセージング
US7849220B2 (en) System using transport protocol objects located at a user agent location to provide translation between different instant messaging protocols
CN1197297C (zh) 一种信息交换平台
US20060095530A1 (en) Server-based message protocol translation
CN113411215B (zh) 基于opc ua的时间敏感网络集中用户配置方法及系统
CN102111454A (zh) 一种分享网页或多媒体信息的方法和系统
US9244754B2 (en) Error code conversion method and system, PPPoE server and mobile terminal
WO2007045136A1 (fr) Systeme et procede de communication sur reseau destine a la traduction en temps reel de paroles et d’informations textuelles en plusieurs langues
CN102801742A (zh) 一种基于xmpp协议的通讯系统及其方法
CN103905597B (zh) 一种计算机控制管理VoIP话机的方法及系统
CN101197724A (zh) 基于IPv6的IGRS家庭网络中信息家电的远程控制系统和方法
US20080043971A1 (en) Transparent transfer of a two-way communication
CN101626302A (zh) 一种基于企业融合通信的多媒体会议管理系统及方法
CN105721274B (zh) 一种多种即时通讯的融合方法及装置
JP5458977B2 (ja) 中継処理方法、プログラム及び装置
Xuefu et al. Design and implementation of web Instant Message System based on XMPP
JP2004318486A (ja) ホームネットワーク構成機器
CN107645567A (zh) 一种远程控制智能终端设备的方法
KR102461836B1 (ko) 챗봇 연결 장치 및 방법
CN103546360B (zh) 一种信息获取方法、系统及imap客户端
CN105989650A (zh) 一种控制电子锁的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20141210

Termination date: 20170329

CF01 Termination of patent right due to non-payment of annual fee