package safeluck.drive.evaluation.im; import android.util.Log; import com.anyun.exam.lib.MyLog; import com.anyun.im_lib.util.ByteUtil; import com.safeluck.aykj.utils.BytesUtils; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import safeluck.drive.evaluation.platformMessage.JK2019MessageBase; import safeluck.drive.evaluation.platformMessage.JKMessage0001; import safeluck.drive.evaluation.platformMessage.JKMessage0100; import safeluck.drive.evaluation.platformMessage.JKMessage8100; import safeluck.drive.evaluation.platformMessage.PlatFormConstant; 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.SPUtils; /** * MyApplication2 * Created by lzw on 2019/12/12. 16:14:33 * 邮箱:632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ public class MessageProcessor implements IMessageProcessor { private static final String TAG = MessageProcessor.class.getSimpleName(); private Map mMsgTimeoutMap = new ConcurrentHashMap<>(); private MessageProcessor(){ messageEscaper = new MessageEscaper(); } private static class MessageProcessorInstance{ private static final IMessageProcessor INSTANCE = new MessageProcessor(); } MessageEscaper messageEscaper; public static IMessageProcessor getInstance(){ return MessageProcessorInstance.INSTANCE; } @Override public void receiveMsg(byte[] message) { //反转义 byte[] datas=messageEscaper.unescape(message); MyLog.i(PlatFormConstant.TAG,"转义过后的服务消息:"+ BytesUtils.bytesToHexString(datas)); JK2019MessageBase jk2019MessageBase = MessageManager.get(BytesUtils.bytesToHexString(datas)); if (jk2019MessageBase instanceof JKMessage8100){ Log.i(TAG, "receiveMsg: "+jk2019MessageBase.messageId); } } @Override public void sendMessage(final JK2019MessageBase msg) { CThreadPoolExecutor.runInBackground(new Runnable() { @Override public void run() { if (IMSClientBootstrap.getInstance().isActive()){ IMSClientBootstrap.getInstance().sendMessage(msg.toBytes()); }else{ Log.e(TAG, "run: 发送消息失败,未初始化连接NettyTcp"); } } }); } }