| | |
| | |
|
| | | private final IClient client;
|
| | |
|
| | | public IClient getClient() {
|
| | | return client;
|
| | | }
|
| | |
|
| | | /**
|
| | | * socket是否在运行
|
| | | */
|
| | |
| | | public void run() {
|
| | | while (isRun.get()) {
|
| | | if (client.isConnect()) {
|
| | | LogUtils.d("=====", "==发送数据==");
|
| | |
|
| | | try {
|
| | | SocketRequest socketRequest = mMessageQueue.take();
|
| | | final String sendStr = new String(socketRequest.getData(), 0, socketRequest.getData().length);
|
| | | LogUtils.d("=====", "==发送数据==:"+sendStr);
|
| | | LogUtils.i("发送数据:"+sendStr);
|
| | | final String action = socketRequest.getAction();
|
| | | try {
|
| | | client.sendMsg(socketRequest.getData());
|
| | |
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | | * 初始化接收线程,只需要初始化一次
|
| | | */
|
| | | public void initReceiveThread() {
|
| | | if (receiveThread == null) {
|
| | | receiveThread = ThreadToolUtils.getInstance().newFixedThreadPool(1);
|
| | | }
|
| | | receiveThread.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | while (isRun.get()) {
|
| | | if (client.isConnect()) {
|
| | | try {
|
| | | //读取数据
|
| | | client.onHandleResponse();
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | LogUtils.d("====", "断开连接" + e.getMessage());
|
| | | disconnectError();
|
| | | receiveThread.execute(new Runnable() {
|
| | | @Override
|
| | | public void run() {
|
| | | while (isRun.get()) {
|
| | | if (client.isConnect()) {
|
| | | try {
|
| | | //读取数据
|
| | | client.onHandleResponse();
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | disconnectError();
|
| | | }
|
| | | }
|
| | | }
|
| | | LogUtils.i("Socket 线程退出接收数据");
|
| | | }
|
| | | }
|
| | | });
|
| | |
|
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
| | | @Override
|
| | | public void run() {
|
| | | if (isRun.get()) {
|
| | | LogUtils.d("====", "===发送心跳包===");
|
| | | // LogUtils.d("====", "===发送心跳包===");
|
| | | if (client.getOptions() != null) {
|
| | | final byte[] heartBeat = client.getOptions().getHeartbeatData();
|
| | | if (heartBeat != null) {
|
| | |
| | | if (!client.isConnect()) {
|
| | | resetConnect(false);
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | if (!client.isConnect() && isOpenRetry.get()) {
|
| | | resetConnect(false);
|
| | | }
|
| | |
|
| | | }
|
| | | }, 3000, TimeUnit.MILLISECONDS);
|
| | | }
|