📄 cmppconnection.java
字号:
unPackCode = cmpp_sm.getParseResult() ;
debugMsg(cmpp_sm);
switch ( cmpp_sm.getCommandId() ) {
case CmppConstants.Cmpp_Submit_Resp: //(正常Submit回应)
ComConstants.test_number++;
if(cmpp_sm.activeResult!=0){
PublicConstants.writeLog.info("(cmpp_sm.respResult!=0 ="+cmpp_sm.activeResult,0);
}
if(ComConstants.test_number%99==0){
PublicConstants.writeLog.info("reciev a resp from Ismg "+ComConstants.test_number,1);
}
if ( !addCmppMsg(cmpp_sm) ) {
PublicConstants.writeLog.error("Cmpp Cmpp_Fwd_MO_Resp from "+myid+" write vector error!"
+"\nseqno:"+cmpp_sm.headSeqcNo
+"\nstatus:"+cmpp_sm.headCmdStatus );
}
break;
case CmppConstants.Cmpp_Deliver: //(正常Deliver)
TestMOnum ++ ;
if( ( TestMOnum %200 ) == 1 )
System.out.println("Cmpp_Deliver :"+TestMOnum+" handle time:"+System.currentTimeMillis());
if( mystate!=ComConstants.WORKING ) {
deliverRespSM.setHeadCmdStatus(CmppConstants.error_bind) ;
// } else if( myBindType==ComConstants.SEND_ONLY ) {
// deliverRespSM.setHeadCmdStatus(CmppConstants.error_bind_type) ;
} else if(unPackCode != CmppConstants.success) {
deliverRespSM.setHeadCmdStatus(unPackCode) ;
} else if(! addCmppMsg(cmpp_sm) ) {//add to vector2
deliverRespSM.setHeadCmdStatus(CmppConstants.error) ;//等待重发
PublicConstants.writeLog.error("Cmpp Cmpp_Deliver from "+myid+ " write vector error!");
} else {
if( ( TestMOnum %200 ) == 1 )
System.out.println("Cmpp_Deliver :"+TestMOnum+" add to vector succ !");
deliverRespSM.setHeadCmdStatus(CmppConstants.success) ;
}
if( deliverRespSM.getHeadCmdStatus() != CmppConstants.success )
PublicConstants.writeLog.error("Cmpp Cmpp_Deliver from "+myid+" error ! my.Retcode:"+cmpp_sm.getHeadCmdStatus()
+"\nheadSeqcNo:"+cmpp_sm.headSeqcNo
+"\nmsgid:"+cmpp_sm.msgId
+"\nmsgMode:"+cmpp_sm.msgMode
+"\nmsgSrcAddr:"+cmpp_sm.msgSrcAddr
+"\nmsgDestAddr:"+cmpp_sm.msgDestAddr
+"\nmsgDataCoding:"+cmpp_sm.msgDataCoding
+"\nmsgSmLength:"+cmpp_sm.msgLength
+"\nmsgContent:"+cmpp_sm.msgContent);
deliverRespSM.setCommandId(CmppConstants.Cmpp_Deliver_Resp) ;
deliverRespSM.headSeqcNo = cmpp_sm.headSeqcNo ;
deliverRespSM.recvTimeStamp=cmpp_sm.recvTimeStamp;
send(deliverRespSM) ;
break;
case CmppConstants.Cmpp_Report: //(正常Report)
TestMOnum ++ ;
if( ( TestMOnum %200 ) == 1 )
System.out.println("Cmpp_Deliver :"+TestMOnum+" handle time:"+System.currentTimeMillis());
if( mystate!=ComConstants.WORKING ) {
deliverRespSM.setHeadCmdStatus(CmppConstants.error_bind) ;
// } else if( myBindType==ComConstants.SEND_ONLY ) {
// deliverRespSM.setHeadCmdStatus(CmppConstants.error_bind_type) ;
} else if(unPackCode != CmppConstants.success) {
deliverRespSM.setHeadCmdStatus(unPackCode) ;
} else if(! addCmppMsg(cmpp_sm) ) {//add to vector2
deliverRespSM.setHeadCmdStatus(CmppConstants.error) ;//等待重发
PublicConstants.writeLog.error("Cmpp Cmpp_Deliver from "+myid+ " write vector error!");
} else {
if( ( TestMOnum %200 ) == 1 )
System.out.println("Cmpp_Deliver :"+TestMOnum+" add to vector succ !");
deliverRespSM.setHeadCmdStatus(CmppConstants.success) ;
}
if( deliverRespSM.getHeadCmdStatus() != CmppConstants.success )
PublicConstants.writeLog.error("Cmpp Cmpp_Deliver from "+myid+" error ! my.Retcode:"+cmpp_sm.getHeadCmdStatus()
+"\nheadSeqcNo:"+cmpp_sm.headSeqcNo
+"\nmsgid:"+cmpp_sm.msgId
+"\nmsgMode:"+cmpp_sm.msgMode
+"\nmsgSrcAddr:"+cmpp_sm.msgSrcAddr
+"\nmsgDestAddr:"+cmpp_sm.msgDestAddr
+"\nmsgDataCoding:"+cmpp_sm.msgDataCoding
+"\nmsgSmLength:"+cmpp_sm.msgLength
+"\nmsgContent:"+cmpp_sm.msgContent);
deliverRespSM.setCommandId(CmppConstants.Cmpp_Report_Resp) ;
deliverRespSM.headSeqcNo = cmpp_sm.headSeqcNo ;
send(deliverRespSM) ;
break;
case CmppConstants.Cmpp_Login: //(Sp Login请求回应)
mystate = ComConstants.WORKING;
CmppConnectionManager.testConnectionNo++;
System.out.println("SERVER Cmpp login "+cmpp_sm.srcSectionId+" OK! "+CmppConnectionManager.testConnectionNo);
PublicConstants.writeLog.info("SERVER Cmpp login "+cmpp_sm.srcSectionId+" OK! "+CmppConnectionManager.testConnectionNo,0);
cmpp_sm.setCommandId(CmppConstants.Cmpp_Login_Resp);
cmpp_sm.activeResult=0;
send(cmpp_sm);
break;
case CmppConstants.Cmpp_Logout: //(Sp Login请求回应)
System.out.println("SERVER Cmpp login "+cmpp_sm.srcSectionId+" OK!");
PublicConstants.writeLog.info("SERVER Cmpp login "+cmpp_sm.srcSectionId+" OK! ",0);
cmpp_sm.setCommandId(CmppConstants.Cmpp_Logout_Resp);
cmpp_sm.activeResult=0;
send(cmpp_sm);
mystate = ComConstants.NOTLOGIN;
break;
case CmppConstants.Cmpp_Login_Resp: //(Sp Login请求回应)
if( unPackCode != CmppConstants.success ) {
PublicConstants.writeLog.error("Cmpp login "+myid+" error ! unPackCode:"+unPackCode);
break;
}
// if ( cmpp_sm.getHeadCmdStatus() != CmppConstants.success) {
// PublicConstants.writeLog.error("Cmpp login "+myid+" error ! RespCode: " + cmpp_sm.getHeadCmdStatus());
// break;
// }
// cmpp_sm.setConAuth(myMBEauth);
// if( cmpp_sm.getRepAuthResult()==true ) {
// myLastVersion = cmpp_sm.getLastVersion();
mystate = ComConstants.WORKING;
System.out.println("Cmpp login "+myid+" OK! bindtype:"+myBindType );
PublicConstants.writeLog.info("Cmpp login "+myid+" OK! bindtype:"+myBindType,0);
//PublicFuction.threadSleep(1000) ;
// if( myBindType == ComConstants.SEND_ONLY ){
// System.out.println("Submit one message !!!!!!!:"+myBindType);
// CmppConnectionManager.instance().sendToIsmg("13975147840","566899","JYTZ","Test",(byte)1,0,(long)0);
// }
// } else {
// disconnect();
// myDelFlag = true;
// CmppConnectionManager.instance()).delConncection(myid);
// myShutdownFlag = true;
// PublicConstants.writeLog.error("Cmpp login "+myid+" error! Invalid ISMG server ! ");
// }
break;
case CmppConstants.Cmpp_Logout_Resp:
mystate= ComConstants.NOTLOGIN;
PublicConstants.writeLog.info("Cmpp logout "+myid+" . status:"+cmpp_sm.getHeadCmdStatus(),0);
break;
//deal heartbeat
case CmppConstants.Cmpp_Active: //(Active请求)
PublicConstants.writeLog.info("Cmpp recv Cmpp_Active from "+myid,3 );
if( mystate!=ComConstants.WORKING ) {
cmpp_sm.setHeadCmdStatus(CmppConstants.error_bind) ;
} else {
cmpp_sm.setHeadCmdStatus(CmppConstants.success);
}
cmpp_sm.setCommandId(CmppConstants.Cmpp_Active_Resp); //设定包命令类型
send(cmpp_sm);
break;
case CmppConstants.Cmpp_Active_Resp: // Active请求回应
PublicConstants.writeLog.info("Cmpp recv Cmpp_Active_Resp from "+myid,3 );
break;
case CmppConstants.Cmpp_Nack_Resp:
PublicConstants.writeLog.error("Cmpp recv Cmpp_Nack_Resp from "+myid );
break;
default:
//PublicConstants.writeLog.error("Cmpp recv error command from "+myid +" cmd:"+ cmpp_sm.getCommandId() );
//给Sp的确认
cmpp_sm.setCommandId(CmppConstants.Cmpp_Nack_Resp) ; //未知命令类型
cmpp_sm.setHeadCmdStatus(CmppConstants.error_command_id) ;
send(cmpp_sm) ;
break;
}
}
public void disconnect() {
mystate= ComConstants.NOTCONNECTED;
try {
myinputstream .close() ;
} catch ( Exception e) {}
;
try {
myoutputstream .close() ;
} catch ( Exception e) {}
;
try {
mySocket.close() ;
} catch ( Exception e) {}
;
}
//发送Login 命令
public void Login() {
//send login package
System.out.println("Cmpp Connected "+myid+" OK ! Loginning(bindtype:"+myBindType+") ... ("
+myip+" , "+ myport +" )" );
PublicConstants.writeLog.info("Cmpp Connected "+myid+" OK ! Loginning(bindtype:"+myBindType+") ...",0);
ShortMsgCmpp cmpp_sm = new ShortMsgCmpp();
cmpp_sm.setConSourceAddr(ComConstants.o_IsmgInfo.spName);
// cmpp_sm.setConSourceAddr("960000");
cmpp_sm.setCommandId(CmppConstants.Cmpp_Login) ;
cmpp_sm.setBindType(myBindType);
/*cmpp_sm.setRepAuth(digest) ;
System.out.println("sourceid:"+cmpp_sm.conSourceAddr);
System.out.println("conTimestamp:"+cmpp_sm.conTimestamp );
System.out.println("mbcaid:"+cmpp_sm.getMpcaId() );
System.out.println("command id:"+cmpp_sm.getCommandId() );*/
mystate=ComConstants.NOTLOGIN;
send( cmpp_sm );
myMBEauth = cmpp_sm.getConAuth() ;
mylastactivetime = System.currentTimeMillis() ;
}
//发送Logout 命令
public void submitLogout() {
//send logout package
ShortMsgCmpp cmpp_sm = new ShortMsgCmpp();
cmpp_sm.setCommandId(CmppConstants.Cmpp_Logout) ;
send( cmpp_sm );
}
//发送Active 命令
// private boolean heartBeat() {
// ShortMsgCmpp cmpp_sm = new ShortMsgCmpp();
// cmpp_sm.setCommandId(CmppConstants.Cmpp_Active) ;
// //cmpp_sm.setHeadSeq(Constants.mo_number+Constants.reTime())
// //Constants.mo_number++;
// if (ComConstants.mo_number>=100000000)
// ComConstants.mo_number=1;
// else
// ComConstants.mo_number++; //与协议转换模块统一
// send( cmpp_sm );
// return true;
// }
public void setLastVersion(byte i) {
myLastVersion = i;
}
public byte getLastVersion() {
return myLastVersion;
}
/**
* 获取连接状态
* @return
* WORKING:正常
* NOTCONNECTED:未连接
* NOTLOGIN:未登陆
* NOTACTIVE:非激活
*/
public String getStatus() {
return mystate;
}
public boolean ifClosed() { //throws Exception {
return mySocket.isClosed();
}
/**
* 获取连接收发类型(暂有争议,2002-07-18)
* @return
* 0:发送
* 1:接收
* 2:收发
*/
public byte getBindType() {
return myBindType;
}
/**
* 获取连接C/S类型
* @return
* CLIENT:MPCU为客户端
* SERVER:MPCU为服务端
*/
public byte getConnType() {
return myConnType;
}
/**
* 该连接在路由表中是否已经可以删除
* @return
* true :是
* false:否
*/
public boolean getDeleteFlag() {
return myDelFlag;
}
/**
* 输出调试信息到日志文件<br>
* Constants.DEBUGLevel规定调试信息详细程度<br>
* @param sm ShortMsgCmpp对象
*/
public void debugMsg(ShortMsgCmpp sm) {
/*if(PublicConstants.DEBUGLevel ==0)
return ; //无调试信息*/
switch(sm.getCommandId()) {
case CmppConstants.Cmpp_Submit:
PublicConstants.writeLog.info( "Cmpp Send <Cmpp_Submit> to ISMG" ,0);
PublicConstants.writeLog.info(
"Cmpp: headSeqcNo:"+sm.headSeqcNo
+"\n"+"msgid:"+sm.msgId
+"\n"+"msgSrcAddr:"+sm.msgSrcAddr
+"\n"+"msgDestAddr:"+sm.msgDestAddr
+"\n"+"msgServiceType:"+sm.msgServiceType
+"\n"+"msgProtocolId:"+sm.msgProtocolId
+"\n"+"msgMode:"+sm.msgMode
+"\n"+"msgPriority:"+sm.msgPriority
+"\n"+"msgDataCoding:"+sm.msgDataCoding
+"\n"+"msgSmLength:"+sm.msgLength
+"\n"+"msgContent:"+sm.msgContent,2);
break;
case CmppConstants.Cmpp_Submit_Resp:
PublicConstants.writeLog.info( "Cmpp Recv <Cmpp_Submit_Resp> from ISMG. status:"+sm.headCmdStatus+" headSeqcNo:"+sm.headSeqcNo,0 );
break;
case CmppConstants.Cmpp_Deliver:
PublicConstants.writeLog.info( "Cmpp Recv <Cmpp_Deliver> from ISMG",0);
PublicConstants.writeLog.info(
"Cmpp: headSeqcNo:"+sm.headSeqcNo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -