新闻中心
每一位客户都是我们的核心财富
行业动态云信公告
您当前位置:首页  > 新闻中心 > 云信公告

短信平台接口增值业务开发基于XMPP技术

来源:原创    时间:2018-02-24    浏览:7858 次

    随着移动通信技术的发展,即时通讯软件在手机中得到了广泛的应用。XMPP作为一种开放的即时消息协议,具有开放性和可扩展性的内在优势。所有这些软件都具有良好的安全性能,但与其他即时通讯软件相比,XMPP可以提供相对简单的功能,只能进行普通的即时消息传递,在当今社会,我们已经不能满足用户对信息的需求。本文在XMPP服务器的基础上,提出了一种改进的方案,增加了对短消息业务.2 XMPP的支持。XMPP协议是一种开放的XML(可扩展标记Lan-guage协议).。XMPP是针对准实时消息传递、考勤信息和请求响应服务而设计的,它可以分为两部分:核心XML流传输协议和基于XML流传输的即时消息扩展应用程序。

blob.png

    TLS通常由操作系统提供。在为XMPP会话建立应用程序时,客户端服务器必须首先建立TCP连接,然后依次发出TLS和SASL身份验证。从本质上讲,XMPP的四层协议并不是一个严格的分层协议,它可以看作是增强XMPP会话通信安全性的一种辅助手段。包含三个顶级XML元素::和.三个顶级元素可以通过属性和命名空间包含越来越复杂的数据和文件。当用户通信时,他将信息添加到XML流中以进行传输。通信的每个用户都需要在服务器上有一个帐户。这个帐户称为JID.JID帐户是用户的唯一标识。jid帐户使用电子邮件格式,帐户类似于[username]@[hostname][/resources]。

    在基于XMPP的短消息增值业务的设计中,采用了XMPP服务器作为基本服务器。模块化设计模式是XMPP服务器的一个主要特性。整个服务器由五个模块组成:C2SU客户端到服务器S2SN服务器到服务器XMPP SMC SE-Manager。这些模块涉及用户认证、服务器互联、数据存储、路由处理等方面。由于XMPP服务器采用模块化设计,便于在其基础上扩展功能。

    为了扩展XMPP服务器的功能,在模块中添加了网关模块,实现了通信平台。所述消息流通过所述网关模块连接到所述短消息接口模块。在设计中,客户端与服务器端、XMPP客户端与网关模块之间以及网关模块与短消息接口模块之间的通信是必要的。系统的总体结构如图1所示。

    在该系统中,XMPP客户端通过GPRS(General Packet RadioServices)连接到XMPP服务器,在通信时不需要通过网关模块处理通用的即时消息,它与服务器之间使用XMPP协议。当用户需要获得相关的SMS增值业务时,可以通过网关模块与SMS接口模块联系,SMS接口模块通过ISMG(Internet Short MES-SAGE网关)与服务提供商进行通信,获得各种增值业务。如果提供用户所需服务的SP没有由本地ISMG连接,那么SMS接口模块需要查询到GNS(网关名称服务器)的路由,以正确转发Izvina。

    在外部通信,短消息接口模块采用CMPP(中国移动点对点协议,而短信接口模块、网关模块采用TCP/IP协议的底部,和应用层采用自定义的报文结构,设计3.1网关模块网关模块的设计。网关模块直接连接到服务器的路由模块和XMPP通信,同时与C/TCP的结构是用短消息接口模块连接。网关模块需要有上线通知功能类似的XMPP服务器等模块来保证通信的顺利完成,还需要实现XMPP协议的封装和解封流动,当从服务器收到邮件时,从XML数据流中提取出有用的信息,从短信接口模块接收消息,然后有用的信息封装成XML数据流。网关模块、短信接口模块与其他使用类似CMPP包自定义消息进行沟通,这就要求信息被封装或未根据这些定义的消息结构。

    同时,短消息接口模块和网关模块在应用层之间保持很长的连接,可以识别短消息接口模块发送的链路测试信息,并发送相应的响应信息。阐述了网关模块与短消息接口模块的相互作用。时序可以分为三个主要部分:通信代理模块、消息处理模块、数据库处理模块。

    为了使程序结构清晰、逻辑清晰,许多消息队列被用来处理不同对象之间的通信。通信代理模块设计的通信代理模块来处理通信细节的短信接口模块和网关之间的网络,包括建立连接,保持活着的测试、发射、拆除等。

        通信代理模块接收包括XMPP,XMPP接收、远程网关接收、发送等。其中,XMPP和rismg接收线程和其他线程的服务器,客户端,而XMPP接收线程使用循环听连接设置界面。当没有数据传输时,通信方应每隔三分钟发送链路检测包以维持连接,并且当链路检测数据包在60秒超时时,链路检测分组将连续发送两次。断开。ISMG接收线程,不像XMPP接收线程,需要创建一个套接口发送一个连接请求到本地网关作为客户端。消息处理模块设计消息处理模块是短消息模块设计的核心部分。它负责处理传入和传出的消息包以及封装和解包CMP p协议。

    超时重传和服务列表的维护和发送功能,消息处理模块采用了多线程的协调模式,包括XMPP消息处理,XMPP消息处理、服务清单等处理,在XMPP处理线程处理的消息接收线程发送XMPP。当消息到达时,它依次确定消息是否是确认消息、断开通知、上行链路消息包或用户上下行通知。ISMG processing thread is used to determine whether the SP is local and, if not, to issue a routing query request to the GNS. 同时,接收线程的GNS打开等待路由查询的结果。GNS处理线程决定是否在接收线程的GNS收到消息查询所需的路线。此模块的最终消息重传线程和服务列。表处理线程集。

    实现超时重传和管理用户在线请求服务列表内容的数据库处理模块。数据库模块的设计包括数据库设计和数据接口操作。它的主要功能是维护各种数据库表单,根据需要存储或读取系统所需的数据。在具体设计中,采用mysql作为数据库管理平台。设计了用户管理表、超时重传表、业务管理表和业务表。每个服务对应于一个单独的业务表。

    发送代理模块也是通过线程设计来设计的。当发送线程在队列中发现一个新消息时,它根据消息中包含的地址信息将消息体发送给相应的字节集。您还需要将成功的消息排队到数据库处理模块,以便进行进一步处理。数据库存储网关发送的每个消息包,并通知消息处理模块打开超时检查线程。当相应的信息包没有收到在规定时间内,该消息。4系统测试分析,采用amd2500 512MB内存的Linux主机作为测试XMPP服务器。

    方法发送1000封邮件每40ms / 50MS/100ms/ 200毫秒是用来测试。在测试中,所有模块正常工作,无异常出口或内存泄漏等问题。然而,当延迟减少到小于40ms,模块的处理信息的能力,正确地将大大降低。为了提高系统的处理能力,有必要从硬件环境和代码优化入手。