`
逆风的香1314
  • 浏览: 1436728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

协议开发 中移动CMPP2.0协议API(一)

阅读更多
 

       前段时间,一直忙于公司的短信接口的开发;虽然总是忙,但还是很有收获的。从短信开接口的开发中也碰到不少问题,相信和我一样,大家在开发网关接口时也会有不少问题会碰到的:比如,采用移动提供的API出错,不同的编码,计费拔测,接收问题等。其实对于自己的上层领导来说,他所要的是结果,致于开发过程中你所遇到的各种问题都是自己去解决的,不懂就上网找,或者说问一下有这方面开发经验的朋友或同学。正是由于不同的开发人员在做CMPP(移动)协议或者是SGIP(联通)、SMGP(小灵通)协议时所碰到的问题相信有很大一部分是一样的,在这里我就把我开发过程中的一些碰到的问题和经验写出来,希望对准备开发短信网关协议的开发人员有一定的帮助,同时也希望大家如果有更好的经验也可以贴出来,这样可以使大家在开发上都会轻松一些。不过大家也可以到这个网站http://skybird.9s9s.com/bbs/index.asp。可以说我也是从上面学到不少东西,在这先感谢各位贴出自己经验的朋友。

 <!----><o:p></o:p>

       说了这么多费话,下面还是转入正题了。下面说主要以中移动的CMPP2.0协议来说明,还会说到API的开发的问题,希望对于想自己开发API的朋友也有一定帮助。

 <o:p></o:p>

       对开手上还没有CMPP协议的朋友,可以到上面说的那个网站去下载,可以以直接到http://www.gd.chinamobile.com/(广州移动)上面下载。对于广州移动所用的是华为的短信网关,在接入是移动方面提供了网关二次开发的API,不过相信用过华为提供的API的人总会是有苦说不出,在这里我也不再多用评论,因为最初时间比较紧迫,所以也用过这个API的,但最终还是自已去开发了。

 <o:p></o:p>

       移动梦网和联通在信都是构建在有中国特色的短信网关部件基础上的,亚信为中国移动设计的CMPP协议规范,中国联通的SGIP规范都是为这个短信网关提供的互联网接口标准,可以看出二者都是借鉴GSM SMPP协议的两种简化版。

 <o:p></o:p>

       CMPP提供了基于TCP的长连接接口和短连接接口标准,SGIP提供了基于TCPHTTP/TCP的短连接接口标准。CMPP中的短信网关为TCP服务器,通过接收SP发起的TCP连接来发送MT/MO/Report/Resp等消息。SGIP中发送MT/MTResp时是短信网关为TCP服务器,发送MO/MOResp/Report/ReportResp时短信网关作为TCP客户端。

 <o:p></o:p>

       长连接接口<o:p></o:p>

       通信双方以客户-服务器方式建立TCP连接,用于双方信息的相互提交。当信道上没有数据传输时,通信双方应每隔时间C发送链路检测包以维持此连接,当链路检测包发出超过时间T后未收到响应,应立即再发送链路检测包,再连续发送N-1次后仍未得到响应则断开此连接。 

短连接接口<o:p></o:p>

       通信双方以客户-服务器方式建立TCP连接,应答与请求在同一个连接中完成。系统采用客户/服务器模式,操作以客户端驱动方式发起连接请求,完成一次操作后关闭此连接。

设计CMPP 协议API模块,要考虑以下几个问题:<o:p></o:p>

1、  链路检测。类似链路检测的长连接维持机制,为每个连接,在最后一个消息的处理结束前,重新启动一个60秒(可以自定义时间长短)的定时器。如果期间有消息来往,停止定时器,处理完消息后,继续启动定时器。如果60秒超时,重新启动定时器,连续三次超时,关闭这个链接,重新启动建立过程

 <o:p></o:p>

2、  超时重发和差错重发。超时重发的原理是发送每个MT消息后,启动一个60秒的定时器,等待网关返回应答。如果超时,继续发送,连续3次都超时都没有应答,关闭连接,启动链路恢复过程。并返回一个发送超时的信息给调用这个API的用户接口。差错重发是接受到错误的应答,并且这个错误是由对等通信双方的协议层产生的,那么重新发送这条消息。

 <o:p></o:p>

3、  滑动窗口控制流量。可以实现流量控制和有效的负载均衡。滑动窗口大小为16条消息。采用异步方式,一次发送16(称动建议值)条消息,并等待应答,每成功一个应答,窗口缩小,然后再从缓存取一个发送,填满窗口。但为了保证每一个发送的直接回应,可以只设置滑动窗口大小为1条消息,这样调用API的客户端程序可以直接得到发送的回应结果。方便客户端程序的自由的自动重发机制。

 <o:p></o:p>

4、  消息重复处理。缓存当前所接收到的消息编号,保证所收到的消不能是回转重复。这个编号要靠短信网关来控制唯一性。当然,自已发送的数据包也要保证在一个链接段内时唯一的,这样才能保证数据的正确性。

 <o:p></o:p>

5、  短信网关消息接收缓存。如要采用回调函数的方法传送接收信息给调用API的客户端程序,可以不考虑接收缓存,而采用API缓存方式接收时,要注意控制接收的量,以保证信息处理的及时性。

 <o:p></o:p>

6、  有序控制。是保障先来的消息,先发送出去,后来的后发,严格地保障先后顺序。是通过序列号和滑动窗口来保障的。实际应用中,倒是不那么严格地关注顺序发送问题。

 <o:p></o:p>

上面说了这么多都是一些技术结构上的问题,并没有实际到开发中的问题。其实做为一个开发人员,首先要做好的就是整个架构搭建的问题,代码实现是其次。因为有了好的架构,实现起来并不是很难(对于经常开发项目的开发人员来说),可以说是磨刀不误砍柴功。下面结给API的开发来说一下CMPP协议的开发。

待续......

分享到:
评论

相关推荐

    中国移动短信CMPP 2.0协议API

    中国移动短信CMPP 2.0协议API是一种专用于短信服务的通信协议,广泛应用于移动通信领域,特别是企业级应用,如验证码发送、信息推送等。该协议基于TCP/IP,为服务提供商提供了高效、稳定且安全的短信发送和接收功能...

    中国移动CMPP2.0短信接口开发

    总的来说,CMPP2.0短信接口开发涉及到网络编程、协议解析等多个技术领域,C#作为一种强大的.NET开发语言,提供了丰富的类库支持,使得开发者能够方便地实现与移动运营商的接口对接,实现高效、稳定的短信服务。

    中国移动短信网关模拟器支持cmpp2.0

    中国移动短信网关模拟器是为开发者和测试人员提供的一种工具,它能够模拟中国移动的CMPP2.0协议,用于测试和验证短信应用的正确性和效率。CMPP2.0(China Mobile Short Message Peer-to-Peer Protocol version 2.0)...

    CMPP 2.0 C# 源码

    CMPP(China Mobile Peer-to-Peer)是一种由中国移动制定的通信协议,主要用于短信服务,包括短信提交、查询、接收和报告等操作。CMPP 2.0是该协议的一个版本,它在CMPP 1.0的基础上进行了优化和增强,提高了系统的...

    使用mina框架实现cmpp2.0服务端

    它提供了一种简单而强大的API,用于处理TCP/IP和UDP/IP协议,以及SSL/TLS加密的网络通信。Mina的核心理念是异步非阻塞I/O,这使得它在处理大量并发连接时表现优秀。 **CMPP2.0协议** CMPP(China Mobile Short ...

    cmpp2.0模拟短信网关

    这个“cmpp2.0模拟短信网关”是一个工具,它能够模拟真实的短信网关环境,帮助开发者在不实际接入中国移动网络的情况下,对应用进行测试和调试。 该工具支持上行和下行模拟,这意味着它可以模拟用户向系统发送短信...

    CMPP2.0实现

    包含接口API与测试工程: 主目录下是详细使用手册.接口文件放在API文件夹中. Demo Project中包含两个示例工程. 一个是模拟网关的源码--“CMPPGateway” 一个是SP连接网关的示例代码--“SPClient”

    中国移动通信CMPP2.0短消息网关开发接口使用手册

    中国移动通信CMPP2.0短消息网关开发接口使用手册是一部详尽的指南,它不仅介绍了CMPP2.0协议的基础知识,还提供了实用的开发工具和示例,帮助开发者高效地构建短信应用或模拟网关服务。通过遵循手册的指导,开发者...

    CMPP2.0、3.0网关以及蓝杰网关代码

    CMPP2.0和CMPP3.0是该协议的不同版本,分别对应不同的功能需求和性能优化。 CMPP2.0是早期的版本,它支持基本的短信业务,如点对点短信、群发短信、短信状态报告等。CMPP2.0协议主要由以下几个关键部分组成: 1. ...

    CMPP.rar_CSharp cmpp_cmpp_cmpp 2.0 C#_短信网关_网关

    CMPP(China Mobile Peer-to-Peer)协议是中国移动通信公司为SP(Service Provider)提供的一种基于TCP/IP协议的通信协议,用于实现SP与移动运营商之间的数据传输,主要包括短信、彩信、WAP Push等业务。C#是微软...

    CMPP2.0JAVA调用

    CMPP2.0是China Mobile Packet Protocol的2.0版本,是中国移动为了高效地处理大量短信业务而设计的一种协议。这个协议主要用于SP(Service Provider)与SMSC(Short Message Service Center,短信服务中心)之间的...

    中国移动短信网关cmpp 3.0 华为java api

    中国移动短信网关CMPP(China Mobile Packet Protocol)3.0是一种专用于移动通信领域的协议,主要用于短信服务,包括发送、接收、查询等操作。华为作为知名的电信设备供应商,提供了对应的Java API来帮助开发者便捷...

    cmpp2_cmpp2客户端和服务端测试工具_

    - 在开发过程中,通过这两个工具可以快速测试CMPP2协议的实现,避免因协议问题导致的短信发送失败或延迟。 - 进行压力测试:模拟大量并发请求,评估系统的承载能力和性能瓶颈。 - 故障排查:当短信服务出现问题时...

    cmpp短信网关协议Java版

    总之,这个Java版的CMPP2.0实现为开发者提供了一个快速接入中国移动短信服务的平台,通过理解并运用此项目,开发者可以深入理解短信网关协议的工作原理,并能有效地集成到自己的应用系统中,实现短信的发送和接收...

    CMPP API

    CMPP(China Mobile Short Message Peer-to-Peer Protocol)是中国移动制定的一种高效、可靠的点对点短消息传输协议,它分为CMPP2.0和CMPP3.0两个版本,分别对应不同的功能需求和性能优化。 在描述中提到,该API...

    移动企信通客户端cmpp2

    在这个项目中,开发者使用C#语言实现了CMPP2.0协议的客户端,使得开发者可以通过编程接口(API)方便地向中国移动的短信网关发送和接收短信。这个客户端可能包含以下关键组件: 1. **连接管理模块**:负责建立和...

    CMPP.rar_cmpp_cmpp接口

    在这个项目中,开发者使用VC6.0来实现CMPP2.0协议,创建了一个接口,使得SP可以通过这个接口与移动运营商的短消息网关进行交互,简化了接入过程,减少了开发的复杂性。 在提供的压缩包文件中,我们可以找到以下几个...

    CMPP SMGP SGIP短信应用平台 v2.0

    在这个短信应用平台中,C#开发者已经为SGIP协议提供了相应的API接口,使得开发人员能够轻松地进行短信的收发操作。 在提供的压缩包文件中,"sms_gate.rar"可能包含了整个短信网关的核心代码,包括对CMPP、SMGP和...

    CMPP20模拟网关

    CMPP2.0(China Mobile Packet Protocol Version 2.0)是中国移动为实现短信、彩信等业务处理而制定的一种通信协议,广泛应用于SP(Service Provider)与SCP(Service Control Point)之间的数据传输。 这个模拟...

    smproxy(20040730)_cmpp_

    这个标签进一步强调了该开发包与CMPP协议的关联,表明它是一个与移动通信、短消息服务相关的开发工具。 **压缩包子文件的文件名称列表:** "smproxy(20040730).jar" 这是压缩包中的唯一文件,是一个Java Archive ...

Global site tag (gtag.js) - Google Analytics