⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmppconnection.java

📁 sp最新短信API(综合网关)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        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 + -