lizhanwei
2020-03-22 40eb16208b55967ec994c00b4e873db9a1e175d0
优化log;实现联网考试、单机训练科二科三考试
8个文件已修改
1个文件已添加
304 ■■■■ 已修改文件
app/src/main/java/safeluck/drive/evaluation/MainActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/app.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java 187 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
im_lib/src/main/java/com/anyun/im_lib/util/PlatFormConstant.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/safeluck/drive/evaluation/MainActivity.java
@@ -283,8 +283,11 @@
        MyLog.i("TCP连接成功");
        //TODO 判断SPUtils 是否保存有des密码;如果没有则进行注册JKMessage0100,如果有密码则进行鉴权JKMessage0101
        String hexPwd = (String) SPUtils.get(this,SPUtils.DES_HEX_PWD,"");
        hexPwd="";
        MessageProcessor.getInstance().addBeatHeart(10);
        if (TextUtils.isEmpty(hexPwd)){
            MyLog.i(PlatFormConstant.TAG,"密码不存在,进行注册,发送注册消息");
            JKMessage0100 jkRegisterMessage = new JKMessage0100();
            if (mRTKConfig!=null){
@@ -302,6 +305,7 @@
            MessageProcessor.getInstance().sendMessage(jkRegisterMessage);
            Log.i(TAG, "onClick: "+ BytesUtils.bytesToHexString(str)+" ============");
        }else{
            MyLog.i(PlatFormConstant.TAG,"密码存在,已注册过,直接发鉴权消息");
            JKMessage0101 jkMessage0101 = new JKMessage0101();
            jkMessage0101.phone = ExamPlatformData.getInstance().getPhone();
            String des = hexPwd;
app/src/main/java/safeluck/drive/evaluation/app.java
@@ -62,6 +62,7 @@
import safeluck.drive.evaluation.platformMessage.JKMessage0101;
import safeluck.drive.evaluation.platformMessage.JKMessage0203;
import safeluck.drive.evaluation.platformMessage.JKMessage0206;
import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.FileUtil;
import safeluck.drive.evaluation.util.SPUtils;
@@ -192,35 +193,7 @@
                    Data judgeData = new Data.Builder().putString(Constant.TTS,json).build();
                    OneTimeWorkRequest ttswoker = new OneTimeWorkRequest.Builder(TTSWorker.class).setInputData(judgeData).build();
                    WorkManager.getInstance(getAppContext()).enqueue(ttswoker);
                    JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray();
                    for (int i = 0; i < jsonArray.size(); i++) {
                        JsonObject jsonObject = jsonArray.get(i).getAsJsonObject();
                        int emp_id = jsonObject.get("wrong_id").getAsInt();
                        String utc = jsonObject.get("utc").getAsString();
                        MyLog.i("评判消息解析之前的utc="+utc);
                        utc = utc.substring(2,utc.length()-3);
                        MyLog.i("评判消息解析之后的utc="+utc);
                        int sn = jsonObject.get("sn").getAsInt();
//                        if (ExamPlatformData.getInstance().getExamType()==2){//场地评判消息
//                            if (emp_id>31|| emp_id<0){
//                                MyLog.i(TAG,"emp_id超出范围不能插入数据库(I类考场)");
//                                return;
//                            }
//                            FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn);
//                            MyLog.i("插入fail_projects表="+failedProj.toString());
//                            failedProjRepository.insert(failedProj);
//                        }
//                        if (ExamPlatformData.getInstance().getExamType()>2){//道路 评判消息
//                            if (emp_id>66|| emp_id<1){
//                                MyLog.i(TAG,"emp_id超出范围不能插入数据库(路考类考场)");
//                                return;
//                            }
//                            LuKaoFailedProj failedProj = new LuKaoFailedProj(Constant.SUBJECT_III, emp_id, Constant.TEST_STU_ID,utc,sn);
//                            MyLog.i("插入路考fail_projects表="+failedProj.toString());
//                            failedProjRepository.insertLuKao(failedProj);
//                        }
                    }
                }
                break;
@@ -388,6 +361,15 @@
                        e.printStackTrace();
                    }
                }else{
                    String str = "登录未成功,不能发送消息=0206";
                    if (str.equalsIgnoreCase(last0206Str)){
                    }else{
                        last0206Str = str;
                        MyLog.i(PlatFormConstant.TAG,str);
                    }
                }
                break;
@@ -395,7 +377,7 @@
        }
    }
private String last0206Str="";
    private int lastSatNum= 0;
    private int lastQf = 0;
app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java
@@ -109,8 +109,8 @@
    private Speaker speaker = null;
    private String ip;
    private int port;
    private String ip="47.93.80.84";
    private int port=12125;
    private String mapPath;//绝对路径包含文件名的path
    private String carPath;//绝对路径包含文件名的path
    private StringBuffer stringBuffer;
@@ -127,12 +127,12 @@
    }
    public String getPlatformIP(){
        ip = (String) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_IP,"47.93.157.103");
        ip = (String) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_IP,"47.93.80.84");
        return ip;
    }
    public int getPlatformPort(){
        port = (int) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_PORT,2020);
        port = (int) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_PORT,12125);
        return port;
    }
app/src/main/java/safeluck/drive/evaluation/fragment/HomeFragment.java
@@ -67,7 +67,7 @@
            case R.id.car_train:
                //单机训练
                if (ExamPlatformData.getInstance().getTrainingMode()==ExamPlatformData.EXAMING_MODE){
                    Toast.makeText(_mActivity, "当前正处于考试模式,无法进入单击训练,请先结束考试", Toast.LENGTH_SHORT).show();
                    Toast.makeText(_mActivity, "当前正处于考试模式,无法进入单机训练,请先结束考试", Toast.LENGTH_SHORT).show();
                }else{
                    TrainFragment trainFragment = findFragment(TrainFragment.class);
                    if (trainFragment == null) {
app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java
@@ -426,7 +426,6 @@
        return view;
    }
    private List<Integer> sns =new ArrayList<>();
@@ -540,8 +539,6 @@
                    }
                });
                //清空sns
                sns.clear();
@@ -552,18 +549,22 @@
                break;
            case R.id.view_map:
//                MapFragment mapFragment = findFragment(MapFragment.class);
//                MyLog.i(TAG,"查看地图");
//                if (mapFragment == null) {
//                    mapFragment = (MapFragment) MapFragment.newInstance();
//                }
//                start(mapFragment);
                RoadDriveMapFragmentaa mapFragment = findFragment(RoadDriveMapFragmentaa.class);
                MyLog.i(TAG,"查看地图");
                if (mapFragment == null) {
                    mapFragment = (RoadDriveMapFragmentaa) RoadDriveMapFragmentaa.newInstance();
                if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){
                    RoadDriveMapFragmentaa mapFragment = findFragment(RoadDriveMapFragmentaa.class);
                    MyLog.i(TAG,"查看路考地图");
                    if (mapFragment == null) {
                        mapFragment = (RoadDriveMapFragmentaa) RoadDriveMapFragmentaa.newInstance();
                    }
                    start(mapFragment);
                }else{
                    MapFragment mapFragment = findFragment(MapFragment.class);
                    MyLog.i(TAG,"查看场考地图");
                    if (mapFragment == null) {
                        mapFragment = (MapFragment) MapFragment.newInstance();
                    }
                    start(mapFragment);
                }
                start(mapFragment);
                break;
            case R.id.btn_return:
                _mActivity.onBackPressed();
@@ -594,7 +595,6 @@
    private void stopExam() {
        MyLog.i(TAG,"结束考试");
        sns.clear();
        //设置模式为NONE 0
        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java
@@ -283,46 +283,98 @@
        initView(view);
        failedProjViewModel = ViewModelProviders.of(this).get(FailedProjViewModel.class);
        failedProjViewModel.getFailedProjectsForIII(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
            @Override
            public void onChanged(List<FailedProj_select> failedProj_selects) {
                if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){
                    MyLog.i("现在是路考状态,监视路考数据失败项目");
                    if (failedProj_selects != null && failedProj_selects.size()>0){
                        item_id = 0;
                        currTotalScore = 100;
                        mArrayList.clear();
                        item_conents.clear();
                        for (FailedProj_select f :
                                failedProj_selects) {
                            item_id += f.getScore_deducting();
                            Log.i(TAG, "onChanged: " + f.toString());
                            mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                            item_conents.add(f.getItem_content());
                            Collections.reverse(mArrayList);
                            mScoreAdapter.addDatas(mArrayList);
                            MyLog.i("item_score="+item_id);
                        }
                        MyLog.i("没扣分之前得分:"+currTotalScore);
                        currTotalScore -=item_id;
                        MyLog.i("路考当前得分:"+currTotalScore);
                        if (currTotalScore < Constant.PASSING_SCORE){
                            MyLog.i("路考低于80,不合格"+currTotalScore);
//                                ExamPlatformData.getInstance().getTTS().speak("考试不合格");
//                                stopExam();
                        }
                        MyLog.i("路考监测到有失败项目加入,通知UI更新颜色");
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }else{
                        MyLog.i(TAG,"路考失败项目数据表被清空更新UI");
                        item_id = 0;
                        mArrayList.clear();
                        item_conents.clear();
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }
                }
            }
        });
        failedProjViewModel.getFailedProjectsForI(Constant.TEST_STU_ID).observe(this, new Observer<List<FailedProj_select>>() {
            @Override
            public void onChanged(List<FailedProj_select> failedProj_selects) {
                if (failedProj_selects != null && failedProj_selects.size()>0){
                if (ExamPlatformData.getInstance().getExamType()<=ExamPlatformData.EXAM_TYPE_ChangKAO){
                    if (failedProj_selects != null && failedProj_selects.size()>0){
                    item_id = 0;
                    currTotalScore = 100;
                    mArrayList.clear();
                    item_conents.clear();
                    for (FailedProj_select f :
                            failedProj_selects) {
                        item_id += f.getScore_deducting();
                        Log.i(TAG, "onChanged: " + f.toString());
                        mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                        item_conents.add(f.getItem_content());
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        MyLog.i("item_score="+item_id);
                    }
                    //TODO 发送JKMessage0203 给平台,这儿有点复杂,看怎么处理
                        item_id = 0;
                        currTotalScore = 100;
                        mArrayList.clear();
                        item_conents.clear();
                        for (FailedProj_select f :
                                failedProj_selects) {
                            item_id += f.getScore_deducting();
                            Log.i(TAG, "onChanged: " + f.toString());
                            mArrayList.add(new ScoreBean(f.getScore_deducting(), f.getItem_content(), f.getDeducting_reason()));
                            item_conents.add(f.getItem_content());
                            Collections.reverse(mArrayList);
                            mScoreAdapter.addDatas(mArrayList);
                            MyLog.i("item_score="+item_id);
                        }
                        //TODO 发送JKMessage0203 给平台,这儿有点复杂,看怎么处理
//                    sendJKMessage0203(failedProj_selects);
                    MyLog.i("没扣分之前得分:"+currTotalScore);
                    currTotalScore -=item_id;
                    MyLog.i("当前得分:"+currTotalScore);
                    if (currTotalScore < Constant.PASSING_SCORE){
                        MyLog.i("低于80,不合格"+currTotalScore);
                        MyLog.i("没扣分之前得分:"+currTotalScore);
                        currTotalScore -=item_id;
                        MyLog.i("当前得分:"+currTotalScore);
                        if (currTotalScore < Constant.PASSING_SCORE){
                            MyLog.i("低于80,不合格"+currTotalScore);
//                        ExamPlatformData.getInstance().getTTS().speak("考试不合格");
//                        stopExam();
                        }
                        MyLog.i("监测到有失败项目加入,通知UI更新颜色");
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }else{
                        MyLog.i(TAG,"失败项目数据表被清空更新UI");
                        item_id = 0;
                        mArrayList.clear();
                        item_conents.clear();
                        Collections.reverse(mArrayList);
                        mScoreAdapter.addDatas(mArrayList);
                        mHandler.obtainMessage(ADD_DATA).sendToTarget();
                    }
                    MyLog.i("监测到有失败项目加入,通知UI更新颜色");
                    mHandler.obtainMessage(ADD_DATA).sendToTarget();
                }else{
                    MyLog.i(TAG,"失败项目数据表被清空更新UI");
                    item_id = 0;
                    mArrayList.clear();
                    item_conents.clear();
                    Collections.reverse(mArrayList);
                    mScoreAdapter.addDatas(mArrayList);
                    mHandler.obtainMessage(ADD_DATA).sendToTarget();
                }
            }
        });
@@ -395,53 +447,6 @@
        return view;
    }
//    private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) {
////        JKMessage0203 jkMessage0203 = new JKMessage0203();
////        jkMessage0203.phone =  ExamPlatformData.getInstance().getPhone();
////        jkMessage0203.ID = ExamPlatformData.getInstance().getID();
////        jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id();
////
////        for (int i = 0; i < failedProj_selects.size(); i++) {
////            if (hasSnEqulas(failedProj_selects.get(i).getSn())){
////                MyLog.i("sn相同"+failedProj_selects.get(i).getSn());
////            }else{
////                ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+(
////                        failedProj_selects.get(i).getScore_deducting()==100?"不合格":"扣"+
////                                failedProj_selects.get(i).getScore_deducting()+"分"));
////                MyLog.i("没有相同的sn,发送"+failedProj_selects.get(i).getSn());
////                ExamPlatformData.getInstance().addSn(failedProj_selects.get(i).getSn());
////                String utc =   failedProj_selects.get(i).getUtc();
////                if (!TextUtils.isEmpty(utc)&&utc.length()>12){
////                    utc =utc.substring(0,12);
////                }
////                jkMessage0203.timeBCD = utc ;
////
////                jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id();
////                jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting();
////                jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason();
////            }
////
////        }
//
////        MessageProcessor.getInstance().sendMessage(jkMessage0203);
////    }
//
////    private boolean hasSnEqulas(int failedProjSn){
////        if (ExamPlatformData.getInstance().getSns().size() > 0){
////            for (int j = 0; j < ExamPlatformData.getInstance().getSns().size(); j++) {
////                MyLog.i("已存在的sn"+ExamPlatformData.getInstance().getSns().get(j));
////                if (ExamPlatformData.getInstance().getSns().get(j) == failedProjSn){
////                    MyLog.i("sn相同,不发"+ExamPlatformData.getInstance().getSns().get(j));
////                    return true;
//                }else{
//                    continue;
//                }
//            }
//
//        }
//        return false;
//
//    }
@@ -532,6 +537,7 @@
                    public void changKao() {
                        exam_type = 2;
                        iv_head.getDrawable().setLevel(1);
                        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
                        ExamPlatformData.getInstance().setExamType(exam_type);
                        examStatusViewModel.updateStartExam(exam_type);
                        sendExamJson(1,exam_type);
@@ -546,6 +552,7 @@
                    @Override
                    public void luKao() {
                        exam_type = 3;
                        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.TRAINING_MODE);
                        ExamPlatformData.getInstance().setExamType(exam_type);
                        examStatusViewModel.updateStartExam(exam_type);
                        sendExamJson(1,exam_type);
@@ -570,12 +577,21 @@
                break;
            case R.id.view_map:
                MapFragment mapFragment = findFragment(MapFragment.class);
                MyLog.i(TAG,"查看地图");
                if (mapFragment == null) {
                    mapFragment = (MapFragment) MapFragment.newInstance();
                if (ExamPlatformData.getInstance().getExamType()>ExamPlatformData.EXAM_TYPE_ChangKAO){
                    RoadDriveMapFragmentaa mapFragment = findFragment(RoadDriveMapFragmentaa.class);
                    MyLog.i(TAG,"查看路考地图");
                    if (mapFragment == null) {
                        mapFragment = (RoadDriveMapFragmentaa) RoadDriveMapFragmentaa.newInstance();
                    }
                    start(mapFragment);
                }else{
                    MapFragment mapFragment = findFragment(MapFragment.class);
                    MyLog.i(TAG,"查看场考地图");
                    if (mapFragment == null) {
                        mapFragment = (MapFragment) MapFragment.newInstance();
                    }
                    start(mapFragment);
                }
                start(mapFragment);
                break;
            case R.id.btn_return:
                _mActivity.onBackPressed();
@@ -604,10 +620,7 @@
    }
    private void stopExam() {
        MyLog.i(TAG,"结束考试");
        //清空sns
        ExamPlatformData.getInstance().clearSns();
        MyLog.i(TAG,"结束训练");
        //设置模式为NONE 0
        ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE);
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -67,7 +67,7 @@
        //反转义
        byte[] datas=messageEscaper.unescape(message);
        MyLog.i(PlatFormConstant.TAG,"转义过后的服务消息:"+ BytesUtils.bytesToHexString(datas));
        MyLog.i(PlatFormConstant.TAG,"服务消息:"+ BytesUtils.bytesToHexString(datas));
        JK2019MessageBase jk2019MessageBase = MessageManager.get(BytesUtils.bytesToHexString(datas));
        if (jk2019MessageBase instanceof JKMessage8100){
            if (((JKMessage8100) jk2019MessageBase).result == JKMessage8100.SUCCESS){
@@ -83,6 +83,7 @@
                byte[] miwen =Utils.encrypt(ByteUtil.intGetBytes(unsignedInt),des);
                MyLog.i(PlatFormConstant.TAG,"鉴权密文="+BytesUtils.bytesToHexString(miwen)+" time="+unsignedInt);
                jkMessage0101.des = BytesUtils.bytesToHexString(miwen);
                MyLog.i(PlatFormConstant.TAG,"发送鉴权消息");
                sendMessage(jkMessage0101);
                ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED);
            }else{
@@ -130,11 +131,11 @@
                    String msgid = BytesUtils.bytesToHexString(msgidbytes);
                    Log.i(TAG, "run: msgid="+msgid);
                    if ((msgid.equalsIgnoreCase("0100")) || (msgid.equalsIgnoreCase("0101"))){
                        MyLog.i(PlatFormConstant.TAG,"注册/鉴权消息直接发送,不发送是否登录成功");
                        if (IMSClientBootstrap.getInstance().isActive()){
                            IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes()));
                        }else{
                            Log.e(TAG, "run: 发送消息失败,未初始化连接NettyTcp");
                            MyLog.i(PlatFormConstant.TAG, "发送消息失败,未初始化连接NettyTcp");
                        }
                    }else{
                        MyLog.i(PlatFormConstant.TAG,"登录未成功,不能发送消息="+msgid);
im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java
@@ -13,6 +13,7 @@
import com.anyun.im_lib.listener.OnEventListener;
import com.anyun.im_lib.util.ByteUtil;
import com.anyun.im_lib.util.MyLog;
import com.anyun.im_lib.util.PlatFormConstant;
import com.safeluck.aykj.utils.BytesUtils;
import java.nio.ByteBuffer;
@@ -183,7 +184,7 @@
        try {
            channel = bootstrap.connect(currentHost,currentPort).sync().channel();
        } catch (Exception e) {
            Log.i(TAG, String.format("连接Server(ip[%s],port[%d]失败)",currentHost,currentPort));
            MyLog.i(PlatFormConstant.TAG, String.format("连接Server(ip[%s],port[%d]失败)",currentHost,currentPort));
            try {
                Thread.sleep(500);
            } catch (InterruptedException ex) {
@@ -210,13 +211,13 @@
        this.connectStatus = connectStateConnecting;
        switch (connectStatus){
            case IMSConfig.CONNECT_STATE_CONNECTING:
                Log.i(TAG, "onConnectStatusCallback: ims连接中...");
                MyLog.i(PlatFormConstant.TAG, "onConnectStatusCallback: ims连接中...");
                if (imsConnectStatusCallback != null){
                    imsConnectStatusCallback.onConnecting();
                }
                break;
            case IMSConfig.CONNECT_STATE_SUCCESSFUL:
                MyLog.i(String.format("onConnectStatusCallback: ims连接成功,host[%s],port[%s]",currentHost,currentPort));
                MyLog.i(PlatFormConstant.TAG,String.format("onConnectStatusCallback: ims连接成功,host[%s],port[%s]",currentHost,currentPort));
                if (imsConnectStatusCallback != null){
                    imsConnectStatusCallback.onConnected();
                }
@@ -232,7 +233,7 @@
                break;
            case IMSConfig.CONNECT_STATE_FAILURE:
                default:
                    MyLog.i( "onConnectStatusCallback: ims连接失败");
                    MyLog.i( PlatFormConstant.TAG," ims连接失败");
                    if (imsConnectStatusCallback != null){
                        imsConnectStatusCallback.onConnectFailed();
                    }
@@ -336,12 +337,12 @@
            return;
        }
        try {
            MyLog.i("PlatformMessage", "sendMsg: "+ BytesUtils.bytesToHexString(msg));
            MyLog.i(PlatFormConstant.TAG, "客户端消息(转义后):"+ BytesUtils.bytesToHexString(msg));
            ByteBuf byteBuf = ByteBufAllocator.DEFAULT.ioBuffer();
            byteBuf.writeBytes(msg);
            channel.writeAndFlush(byteBuf);
        } catch (Exception e) {
            Log.i("PlatformMessage", "发送消息失败,reason="+e.getMessage()+"\t"+msg);
            MyLog.i(PlatFormConstant.TAG, "客户端发送消息失败,reason="+e.getMessage()+"\t"+msg);
        }
    }
@@ -456,7 +457,7 @@
        @Override
        public void run() {
            MyLog.i(TAG, "执行重连任务");
            MyLog.i(PlatFormConstant.TAG, "执行重连任务");
            if (!isFirst){
                onConnectStatusCallback(IMSConfig.CONNECT_STATE_FAILURE);
            }
@@ -536,7 +537,7 @@
                    if(connectStatus != IMSConfig.CONNECT_STATE_CONNECTING){
                        onConnectStatusCallback(IMSConfig.CONNECT_STATE_CONNECTING);
                    }
                    MyLog.i( String.format("正在进行connectServer【%s】的第[%d]连接,当前重连延时时长为[%dms]: ",serverUrl,j,j*getReconnectInterval()));
                    MyLog.i(PlatFormConstant.TAG, String.format("正在进行connectServer【%s】的第[%d]连接,当前重连延时时长为[%dms]: ",serverUrl,j,j*getReconnectInterval()));
                    try {
                        currentPort = Integer.parseInt(address[1]);
                        currentHost = address[0];
im_lib/src/main/java/com/anyun/im_lib/util/PlatFormConstant.java
New file
@@ -0,0 +1,9 @@
package com.anyun.im_lib.util;
public class PlatFormConstant {
    public static final String TAG = "PlatFormMessage";
    public static final int  SUCCESS = 0;
    public static final short STU_INFO_SUCC = 1;
}