From 87ab0bd072bd42c09a649759090942781ab53fcb Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期二, 18 二月 2020 16:08:18 +0800
Subject: [PATCH] 所有消息测试方法
---
im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java | 8 ++
im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java | 6 --
im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java | 19 ++++--
app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 64 ++++++++++++++++++++-
app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java | 31 +++++++---
lib/src/main/java/com/anyun/exam/lib/MyLog.java | 2
6 files changed, 103 insertions(+), 27 deletions(-)
diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
index 092b3c4..fac1003 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -20,6 +20,9 @@
import com.google.android.material.textfield.TextInputEditText;
import com.safeluck.aykj.utils.BytesUtils;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+
import me.yokeyword.fragmentation.SupportFragment;
import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
import safeluck.drive.evaluation.DB.criterias.viewmodel.CriteriaIViewModel;
@@ -28,6 +31,10 @@
import safeluck.drive.evaluation.platformMessage.GainStuMessage;
import safeluck.drive.evaluation.platformMessage.JKClientCommonMessage;
import safeluck.drive.evaluation.platformMessage.JKMessage0101;
+import safeluck.drive.evaluation.platformMessage.JKMessage0201;
+import safeluck.drive.evaluation.platformMessage.JKMessage0202;
+import safeluck.drive.evaluation.platformMessage.JKMessage0203;
+import safeluck.drive.evaluation.platformMessage.JKMessage0204;
import safeluck.drive.evaluation.platformMessage.JKRegisterMessage;
import safeluck.drive.evaluation.platformMessage.RegisterMessage;
import safeluck.drive.evaluation.im.IMSClientBootstrap;
@@ -118,8 +125,8 @@
String userId = "100002";
String token = "token_" + userId;
// String hosts = "[{\"host\":\"47.93.80.84\", \"port\":12125}]";
-// String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]";
- String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]";
+ String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]";
+// String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]";
IMSClientBootstrap.getInstance().init(userId,token,hosts,1);
break;
@@ -182,6 +189,14 @@
String str1 = jkClientCommonMessage.toString();
Log.i(TAG, "onClick1: "+ str1+" ============");
+ String hex = "B7 A2 B6 AF BB FA C6 F4 B6 AF BA F3 A3 AC B2 BB BC B0 CA B1 CB C9 BF AA C6 F4 B6 AF BF AA B9 D8";
+ String string = null;
+ try {
+ string = new String(BytesUtils.hexStringToBytes(hex.replace(" ","")),"GBK");
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ Log.i(TAG, "onClick: string="+string);
break;
case R.id.btn_register:
@@ -203,17 +218,60 @@
break;
case R.id.btn_auth:
JKMessage0101 jkMessage0101 = new JKMessage0101();
-// jkMessage0101.des =
+ jkMessage0101.messageId = 0x0101;
+ jkMessage0101.phone = "0008618513021245";
+ jkMessage0101.protocalVer = 235;
+ jkMessage0101.des ="0102030405060708";
+ jkMessage0101.timestamp = (int) System.currentTimeMillis();
+ byte[] jjk0101 = jkMessage0101.toBytes();
+ MessageProcessor.getInstance().sendMessage(jjk0101);
break;
case R.id.btn_gain:
+ JKMessage0201 jkMessage0201 = new JKMessage0201();
+ jkMessage0201.protocalVer = 235;
+ jkMessage0201.phone = "0008618513021245";
+ jkMessage0201.messageId = 0x0201;
+ jkMessage0201.currentExam = 1;
+ jkMessage0201.id = "123456789";
+ MessageProcessor.getInstance().sendMessage(jkMessage0201.toBytes());
break;
case R.id.btn_start_exam:
+ JKMessage0202 jkMessage0202 = new JKMessage0202();
+ jkMessage0202.protocalVer = 235;
+ jkMessage0202.phone = "0008618513021245";
+ jkMessage0202.timeBCD = new Date();
+ jkMessage0202.messageId = 0x0202;
+ jkMessage0202.curr_exam = 1;
+ jkMessage0202.ID = "123456789";
+ jkMessage0202.exam_id = 123456;
+ MessageProcessor.getInstance().sendMessage(jkMessage0202.toBytes());
break;
case R.id.btn_fail:
+ JKMessage0203 jkMessage0203 = new JKMessage0203();
+ jkMessage0203.messageId = 0x0203;
+ jkMessage0203.phone = "0008618513021245";
+ jkMessage0203.protocalVer = 235;
+ jkMessage0203.timeBCD = new Date();
+ jkMessage0203.fail_item_id = 4;
+ jkMessage0203.fail_score = 10;
+ jkMessage0203.fail_reason = "鍙戝姩鏈哄惎鍔ㄥ悗锛屼笉鍙婃椂鏉惧紑鍚姩寮�鍏�";
+ jkMessage0203.ID = "123456789";
+ jkMessage0203.exam_id = 123456;
+ MessageProcessor.getInstance().sendMessage(jkMessage0203.toBytes());
break;
case R.id.btn_gps:
break;
case R.id.btn_stop_exam:
+ JKMessage0204 jkMessage0204 = new JKMessage0204();
+ jkMessage0204.messageId = 0x0204;
+ jkMessage0204.protocalVer = 235;
+ jkMessage0204.phone = "0008618513021245";
+ jkMessage0204.timeBCD = new Date();
+ jkMessage0204.score = 10;
+ jkMessage0204.stop = JKMessage0204.SUCC_STOP;
+ jkMessage0204.ID = "123456789";
+ jkMessage0204.exam_id = 123456;
+ MessageProcessor.getInstance().sendMessage(jkMessage0204.toBytes());
break;
}
}
diff --git a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
index 73a3a7f..419799d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -4,10 +4,14 @@
import com.anyun.exam.lib.MyLog;
import com.anyun.im_lib.util.ByteUtil;
+import com.safeluck.aykj.utils.BytesUtils;
+import safeluck.drive.evaluation.platformMessage.JK2019MessageBase;
import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
import safeluck.drive.evaluation.platformMessage.RegisterResp;
import safeluck.drive.evaluation.platformMessage.ServerCommonRsp;
+import safeluck.drive.evaluation.platformMessage.utils.MessageEscaper;
+import safeluck.drive.evaluation.platformMessage.utils.MessageManager;
import safeluck.drive.evaluation.util.CThreadPoolExecutor;
import safeluck.drive.evaluation.util.Utils;
@@ -22,26 +26,35 @@
private static final String TAG = MessageProcessor.class.getSimpleName();
private MessageProcessor(){
-
+ messageEscaper = new MessageEscaper();
+ messageManager = new MessageManager();
}
private static class MessageProcessorInstance{
private static final IMessageProcessor INSTANCE = new MessageProcessor();
}
-
+ MessageEscaper messageEscaper;
+ MessageManager messageManager;
public static IMessageProcessor getInstance(){
return MessageProcessorInstance.INSTANCE;
}
@Override
public void receiveMsg(byte[] message) {
- byte[] datas = Utils.parseMsg(message);
- Log.i(TAG, "receiveMsg: "+ ByteUtil.byte2HexStr(datas));
- byte checkcolde=Utils.calCheckCode(ByteUtil.subArray(datas,0,datas.length-1));
- if (checkcolde == datas[datas.length-1]){
- Log.i(TAG, "receiveMsg: 娑堟伅姝g‘");
- parseMessage(datas);
- }
+// byte[] datas = Utils.parseMsg(message);
+// Log.i(TAG, "receiveMsg: "+ ByteUtil.byte2HexStr(datas));
+// byte checkcolde=Utils.calCheckCode(ByteUtil.subArray(datas,0,datas.length-1));
+// if (checkcolde == datas[datas.length-1]){
+// Log.i(TAG, "receiveMsg: 娑堟伅姝g‘");
+// parseMessage(datas);
+// }
+
+
+ //鍙嶈浆涔�
+ byte[] datas=messageEscaper.unescape(message);
+ MyLog.i(PlatFormConstant.TAG,"杞箟杩囧悗鐨勬湇鍔℃秷鎭細"+ BytesUtils.bytesToHexString(datas));
+ JK2019MessageBase jk2019MessageBase = MessageManager.get(BytesUtils.bytesToHexString(datas));
+
}
private void parseMessage(byte[] datas) {
diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java b/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
index 97a2bbc..ff2bec0 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
@@ -59,12 +59,19 @@
// TODO: 2019/12/4
//鏈嶅姟绔繑鍥炴秷鎭悗
ByteBuf buf = (ByteBuf) msg;
- byte[] req = new byte[buf.readableBytes()];
- buf.readBytes(req);
- Log.i(TAG, "channelRead hex str: "+ ByteUtil.byte2HexStr(req));
- String str = new String(req, "UTF-8");
- if (req!=null && req.length>0)
- imsClient.getMsgDispatcher().receivedMsg( req );
+ int len = buf.readableBytes();
+ if (len>0){
+ byte[] req = new byte[len+2];
+ buf.readBytes(req,1,len);
+ req[0] = 0x7E;
+ req[len+1] = 0x7e;
+ Log.i(TAG, "channelRead hex str: "+ ByteUtil.byte2HexStr(req));
+// if (req!=null && req.length>0){
+//
+// imsClient.getMsgDispatcher().receivedMsg( req );
+// }
+ }
+
}
@Override
diff --git a/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java b/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
index 3e45dd5..be515e4 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
@@ -3,6 +3,8 @@
import android.text.TextUtils;
import android.util.Log;
+import com.safeluck.aykj.utils.BytesUtils;
+
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
@@ -71,7 +73,7 @@
byte b = (byte) a;
bbt[p] = b;
}
- Log.i(TAG, "str2Bcd: "+byte2HexStr(bbt));
+// Log.i(TAG, "str2Bcd: "+byte2HexStr(bbt));
return bbt;
}
@@ -244,7 +246,9 @@
String time = sdf.format(System.currentTimeMillis());
byte[] timeStampBCD = ByteUtil.str2Bcd(time);
-
+// String hex = "B7 A2 B6 AF BB FA C6 F4 B6 AF BA F3 A3 AC B2 BB BC B0 CA B1 CB C9 BF AA C6 F4 B6 AF BF AA B9 D8";
+// String string = new String(BytesUtils.hexStringToBytes(hex.replace(" ","")));
+// System.out.println(string);
}
public static byte[] subArray(byte[] srcBytes, int begin, int length) {
diff --git a/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java b/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java
index 1ac6965..5fca7e5 100644
--- a/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java
+++ b/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java
@@ -163,7 +163,6 @@
if (this.disabledFields.contains(fieldDefine.field.getName())) {
continue;
}
- Log.i("PlatFormMessage", "1field: "+fieldDefine.field.getName());
if(fieldDefine.relativeLengthField==null)
continue;
try {
@@ -187,17 +186,12 @@
{
continue;
}
- Log.i("PlatFormMessage", "2field: "+fieldDefine.field.getName());
try {
Object obj = fieldDefine.field.get(this);
String hex = fieldDefine.coder.encode(obj);
if(hex==null)
{
hex = "";
- }
- if (fieldDefine.field.getName().equalsIgnoreCase("phone")){
- Log.i("PlatFormMessage", "phone toString: "+hex
- );
}
int defineLen = fieldDefine.getFieldLen();
diff --git a/lib/src/main/java/com/anyun/exam/lib/MyLog.java b/lib/src/main/java/com/anyun/exam/lib/MyLog.java
index 0b24a45..6a8c124 100644
--- a/lib/src/main/java/com/anyun/exam/lib/MyLog.java
+++ b/lib/src/main/java/com/anyun/exam/lib/MyLog.java
@@ -1,4 +1,4 @@
-package com.anyun.exam.lib;
+package com.anyun.im_lib.util;
--
Gitblit v1.8.0