open-cmpp 1.0 发布

open-cmpp 1.0 发布

open-cmpp,基于华为的java cmppp api上开发,修正了原来华为提供包的一些小BUG,并且在此基础上提供支持滑动窗口的功能。

open-cmpp采用完全开放的协议,所提供的源码,可以任意拷贝、修改和分发。

open-cmpp包括三部分内容:
1、其中对华为的包源码反编译然后修改,修正了其中一些小BUG,增加了一些功能。但是还是保留原来的包名和类名。
    修正的BUG包括:
    a)、PEventAdapter中的handle(Event e),原来存在明显错误。
    b)、SMPPSubmitMessage,这个类的构造函数中,把validityPeriod写到buf的代码存在错误。
        可以说,原来华为Java API的SMPP模块,是完全不可用的。
2、增加了CMPP滑动窗口的支持。原来华为提供CMPP实现,不支持滑动窗口,但是其设计结构良好,在其上扩充实现滑动窗口,也相当容易。
3、一个CMPP模拟网关。拥有源码并且可以作二次开发的CMPP模拟网管,对调试程序会有帮助。

下载地址:
http://www.blogjava.net/Files/open-cmpp/open-cmpp%201.0.zip

滑动窗口的使用方式如下:
final  List < CMPPDeliverMessage >  receiveList  =   new  ArrayList < CMPPDeliverMessage > ();
final  List < CMPPSubmitMessage >  successList  =   new  ArrayList < CMPPSubmitMessage > ();
final  List < CMPPSubmitMessage >  failedList  =   new  ArrayList < CMPPSubmitMessage > ();
AyncSMProxyEventListener listener 
=   new  AyncSMProxyEventListener() {
    
public   void  onReceive(CMPPDeliverMessage deliver) {
        System.out.println(
" RECEIVE MSG :  "   +  deliver.toString());
        receiveList.add(deliver);
    }

    
public   void  onSubmitSuccess(CMPPSubmitMessage submit,
            CMPPSubmitRepMessage submit_resp) {
        System.out.println(
" SEND SUCCESS :  "   +  submit.getSequenceId());
        successList.add(submit);
    }

    
public   void  onSubmitFailed(CMPPSubmitMessage submit,
            CMPPSubmitRepMessage submit_resp) {
        System.out.println(
" SEND FAILED :  "   +  submit.getSequenceId()
                
+   " , RESULT  "   +  submit_resp.getResult());
        failedList.add(submit);
    }

};
AyncSMProxy proxy 
=   new  AyncSMProxy(listener);

String rcvMobile[] 
=   new  String[] {  " 12345678901 "  };

for  ( int  i  =   0 ; i  <   10 ++ i) {
    
long  msgId  =  i;
    CMPPSubmitMessage submit 
=   new  CMPPSubmitMessage(msgId,  1 1 1 1 ,
            
" websms " 1 "" 0 0 0 " websms " " 02 " " 10 " new  Date(
                    System.currentTimeMillis() 
+  ( long 0xa4cb800 ),
            
null " 888813512345678 " , rcvMobile, ( " testmessage_ "   +  i)
                    .getBytes(), 
"" );

    proxy.send_by_async(submit);
}

proxy.close();

你可能感兴趣的:(open-cmpp 1.0 发布)