一种基于XMPP协议的即时消息服务方法与流程

文档序号:12752115阅读:389来源:国知局

本发明涉及计算机应用技术领域,具体地说是一种实用性强、基于XMPP协议的即时消息服务方法。



背景技术:

即时消息是一种基于互联网应用的实时交互方式,用户可以利用IM软件实现文字、音频和视频等信息的即时传送,以及点对点的数据交换,自1996年世界第一个IM软件ICQ面世以来,经过十多年的迅猛发展,现状IM已经成为了继电子邮件和WEB之后的第三大互联网应用。

即时消息主要被人们用于私人之间的日常交流和保持联系,除此之外即时消息被广泛地应用于办公领域,如问题讨论、协商工作日程等。目前,已经出现了不少面向企业应用的即时消息软件,它们为企业人员协同工作,资源管理和客户关系管理带来了便利。而且大多数即时消息软件还集成了更多其他的服务,如文件传输、语音视频服务、新闻订阅服务、网络游戏服务等等,

即时消息技术不仅是私人之间的日常交流工具,它也逐渐成为互联网信息平台的重要组成部分。即时消息的发展普及与其自身所具备的特征有着必然的联系,它具有实时性、在线性与文本交互性等特征,满足了人们的日常生活和办公环境中的交流与协助的需要,即时消息设计等到多种技术研究领域,是通信技术和计算机技术融合的结果,因此对即时通信的研究有着重要的应用价值。

XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。它在促进服务器之间的准即时操作。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,XMPP协议不受限于操作系统和浏览器差异。

即时消息通信使用在如今智能化时代,有着得巨大的应用价值。但是由于用户数据量的增加和租用服务设备价格费用等,采用成熟的XMPP协议完成即时消息通信成为必要,基于此,现提供一种基于XMPP协议的即时消息服务方法。



技术实现要素:

本发明的技术任务是针对以上不足之处,提供一种实用性强、基于XMPP协议的即时消息服务方法。

一种基于XMPP协议的即时消息服务方法,基于XMPP客户端、XMPP服务器和网关实现,且通信能够在这三者的任意两个之间双向发生;其中服务器用于客户端信息记录、连接管理和信息的路由功能;网关用于与异构即时通信系统的互联互通,异构系统包括SMS短信、MSN、ICQ;网关是基本的网络形式,是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML;即时消息服务的具体过程为:

首先将节点连接到服务器;

服务器通过本地目录系统中的证书对其认证;

节点指定目标地址,让服务器告知目标状态;

服务器查找、连接并进行相互认证;

节点之间进行交互。

XMPP客户端用于实现以下功能:通过TCP套接字与XMPP服务器进行通信,即客户端与服务端通过XML 在TCP 套接字的5222 端口进行通信;解析组织XML信息包;解析消息数据类型。

在XMPP客户端设置有通讯模块、解析模块、加密模块、数据模块、应用模块,其中通讯模块负责与服务器建立通讯,并通过创建三个线程来进行处理,分别负责消息的发送、接收和心跳信息的发送;解析模块用来解析XML数据流,根据解析元素不同类型封装成不同的数据对象;数据模块定义整个客户端中的数据类型和对象;应用模块包括即时通信、图片浏览和音乐播放,是客户端和用户交流的接口;加密模块对发送和接收的消息进行加解密,以确保通讯数据的安全。

该XMPP客户端安装在移动终端上且连接存储系统,存储系统包括数据库和存储卡,用户信息和聊天信息在客户端存储在移动终端自带的数据库中,多媒体文件和图片文件存储在移动终端的虚拟文件存储设备存储卡中。

所述XMPP 服务器用于监听客户端连接,并直接与客户端应用程序通信;与其他 XMPP 服务器通信。

所述XMPP服务器包含两个部分服务,一个是监听特定端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,用于用户注册和身份认证,并发送推送通知消息;另外一部分是Web服务,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。

XMPP服务器通过代码设计成模块化,这些代码分别处理Session管理、用户和服务器之间的通信、服务器之间的通信、DNS转换、存储用户的个人信息和朋友名单、保留用户在下线时收到的信息、用户注册、用户的身份和权限认证、根据用户的要求过滤信息和系统记录;设计成的模块化包括以下四个部分:SessionManager,Auth Manager,PresenceManager以及Notification Manager,其中SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。

本发明的一种基于XMPP协议的即时消息服务方法,具有以下优点:

1、具有良好的扩展性:在XMPP 中,即时消息和到场信息都是基于XML 的结构化信息,这些信息以XML 节(XML Stanza)的形式在通信实体间交换。XMPP 发挥了XML 结构化数据的通用传输层的作用,它将出席和上下文敏感信息嵌入到XML 结构化数据中,从而使数据以极高的效率传送给最合适的资源,基于XML 建立起来的应用具有良好的语义完整性和扩展性。

2、分布式的网络架构。XMPP 协议都是基于Client/Server 架构,但是XMPP协议本身并没有这样的限制。网络的架构和电子邮件十分相似,但没有结合任何特定的网络架构,适用范围非常广泛。

3、具有很好的弹性:XMPP 除了可用在即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。

4、安全性高:本发明的XMPP在Client-to-Server通信,和Server-to-Server通信中都使用TLS (Transport Layer Security)协议作为通信通道的加密方法,保证通信的安全。任何XMPP服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术更加增强了通信的安全性,实用性强,适用范围广泛,易于推广。

附图说明

附图1为本发明XMPP客户端结构图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

本发明的一种基于XMPP协议的即时消息服务方法,不受限于平台或系统,实现消息即时接发服务。本发明提供的XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当两个客户端进行通讯时,他们的消息都是通过服务器传递的(也有例外,例如在两个客户端传输文件时)采用这种架构,主要是为了简化客户端,将大多数工作放在服务器端进行,这样客户端的工作就比较简单,而且,当增加功能时,多数是在服务器端进行。

在本发明的XMPP中定义了三个角色:XMPP客户端,XMPP服务器和网关。通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录、连接管理和信息的路由功能;网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信)、MSN、ICQ等;基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML,工作原理是:

1)节点连接到服务器;

2)服务器利用本地目录系统中的证书对其认证;

3)节点指定目标地址,让服务器告知目标状态;

4)服务器查找、连接并进行相互认证;

5)节点之间进行交互。

一、关于XMPP客户端。

XMPP 系统的一个设计标准是必须支持简单的客户端。事实上,XMPP 系统架构对客户端只有很少的几个限制。一个XMPP 客户端必须支持的功能有:

1. 通过 TCP 套接字与XMPP 服务器进行通信;

2. 解析组织好的 XML 信息包;

3. 理解消息数据类型。

XMPP将复杂性从客户端转移到服务器端。这使得客户端编写变得非常容易,更新系统功能也同样变得容易。XMPP 客户端与服务端通过XML 在TCP 套接字的5222 端口进行通信,而不需要客户端之间直接进行通信。

如附图1所示的客户端结构中,通讯模块负责与服务器建立通讯旧。通过创建3个线程来进行处理。分别负责消息的发送、接收和心跳信息的发送;解析模块主要用来解析XML数据流。根据解析元素不同类型封装成不同的数据对象:数据模块定义整个客户端中大部分的数据类型和对象;应用模块包括即时通信、图片浏览和音乐播放。是客户端和用户交流的接口;加密模块对发送和接收的消息进行加解密。以确保通讯数据的安全。

二、关于XMPP服务器。

XMPP 服务器遵循两个主要法则:

a) 监听客户端连接,并直接与客户端应用程序通信;

b) 与其他 XMPP 服务器通信;

XMPP开源服务器一般被设计成模块化,由各个不同的代码包构成,这些代码包分别处理Session管理、用户和服务器之间的通信、服务器之间的通信、DNS(Domain Name System)转换、存储用户的个人信息和朋友名单、保留用户在下线时收到的信息、用户注册、用户的身份和权限认证、根据用户的要求过滤信息和系统记录等。另外,服务器可以通过附加服务来进行扩展,如完整的安全策略,允许服务器组件的连接或客户端选择,通向其他消息系统的网关。

服务器包含两个部分,一个是监听特定端口上的XMPP服务,负责与客户端的XMPPConnection类进行通信,作用是用户注册和身份认证,并发送推送通知消息。另外一部分是Web服务器,采用一个轻量级的HTTP服务器,负责接收用户的Web请求。

XMPPConnection类用来连接XMPP服务,可以使用connect()方法建立与服务器的连接。disconnect()方法断开与服务器的连接,在创建连接前可以使用XMPPConnection.DEBUG_ENABLED = true; 使开发过程中可以弹出一个GUI窗口,用于显示我们的连接与发送Packet的信息。

主要的四个组成部分,分别是SessionManager,Auth Manager,PresenceManager以及Notification Manager。SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager负责实现服务器向客户端推送消息功能。

系统客户端基于移动终端平台。采用XMPP作为即时通讯协议。XMPP是基于XML,实现任意两个网络终端准实时的交换结构化信息的通信协议。采用移动终端平台提供的XML解析包对XML进行解析。由于应用活动都运行于主线程。故用多线程技术来解决系统通讯问题。针对通信安全问题.系统的用户信息和聊天信息在客户端存储在移动终端平台自身所带的SQLite数据库中,多媒体文件和图片文件存储在移动终端平台虚拟文件存储设备SD Card中。

三、网关。

XMPP 突出的特点是可以和其他即时通信系统交换信息和用户在线状况。由于协议不同,XMPP 和其他系统交换信息必须通过协议的转换来实现,目前几种主流即时通信协议都没有公开,所以XMPP 服务器本身并没有实现和其他协议的转换,但它的架构允许转换的实现。实现这个特殊功能的服务端在XMPP 架构里叫做网关(gateway)。目前,XMPP 实现了和AIM、ICQ、IRC、MSN Massager、RSS0.9 和Yahoo Massager 的协议转换。由于网关的存在,XMPP 架构事实上兼容所有其他即时通信网络,这无疑大大提高了XMPP的灵活性和可扩展性。

采用本发明的技术后,可有效减低技术门槛和减少开发成本:由于XMPP技术趋于成熟和部署搭建容易,故开发人员只需阅读XMPP相关开发稳定,即可快速完成XMPP协议搭建和部署。不需要太多的技术攻关,可减低开发成本。

可扩展性强:由于XMPP协议由XMPP客户、XMPP服务端和网关组成,其中XMPP服务端负责整个数据流转和处理工作,故二次开发只需在XMPP服务端进行优化和新增即可,减低二次开发带来的成本和风险。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于XMPP协议的即时消息服务方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1