| | |
| | | import android.text.TextUtils; |
| | | import android.util.Log; |
| | | |
| | | import com.dayu.recharge.activity.HomeActivity; |
| | | import com.dayu.recharge.dao.BaseDaoSingleton; |
| | | import com.dayu.recharge.dbBean.AdminDataBean; |
| | | import com.dayu.recharge.dbBean.DeviceNumber; |
| | | import com.dayu.recharge.dbBean.IpBean; |
| | | import com.easysocket.EasySocket; |
| | | import com.easysocket.connection.action.SocketStatus; |
| | | import com.easysocket.entity.OriginReadData; |
| | | import com.easysocket.entity.SocketAddress; |
| | | import com.easysocket.interfaces.conn.ISocketActionListener; |
| | | import com.easysocket.interfaces.conn.SocketActionListener; |
| | | import com.dayu.recharge.MyApplication; |
| | | import com.dayu.recharge.utils.ToastUtil; |
| | | import com.dayu.recharge.utils.WSHelper; |
| | | import com.easysocket.utils.LogUtil; |
| | | import com.easysocket.utils.HexUtil; |
| | | |
| | | |
| | | /** |
| | |
| | | public class SocketNet { |
| | | public static SocketNet socketNet; |
| | | SocketCallBack myCallBack; |
| | | byte[] dataMessage; |
| | | // byte[] dataMessage; |
| | | boolean isTest = false; |
| | | Context mContext; |
| | | |
| | |
| | | isTest = false; |
| | | // 发送 |
| | | // EasySocket.getInstance().upMessage(dataMessage); |
| | | if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null) { |
| | | EasySocket.getInstance().disconnect(false); |
| | | EasySocket.getInstance().connect(); |
| | | this.dataMessage = dataMessage; |
| | | if (EasySocket.getInstance().getDefconnection() != null) { |
| | | // EasySocket.getInstance().disconnect(false); |
| | | // EasySocket.getInstance().connect(); |
| | | // if (EasySocket.getInstance().getDefconnection().getConnectionStatus()== SocketStatus.SOCKET_CONNECTED){ |
| | | EasySocket.getInstance().upMessage(dataMessage); |
| | | // }else { |
| | | // |
| | | // } |
| | | |
| | | // this.dataMessage = dataMessage; |
| | | } else { |
| | | LogUtil.w("Socket地址为空"); |
| | | MyApplication.myApplication.initEasySocket(false, null); |
| | | } |
| | | } |
| | | |
| | |
| | | isTest = true; |
| | | mContext = context; |
| | | if (EasySocket.getInstance().getDefOptions().getSocketAddress() != null && !MyApplication.myApplication.isDoInitMachine) { |
| | | EasySocket.getInstance().disconnect(false); |
| | | EasySocket.getInstance().connect(); |
| | | // EasySocket.getInstance().disconnect(false); |
| | | // EasySocket.getInstance().connect(); |
| | | } else { |
| | | // ToastUtil.show(mContext, "Socket地址为空"); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public void onSocketConnSuccess(SocketAddress socketAddress) { |
| | | Log.i("SocketActionListener", "连接成功"); |
| | | String initCode = WSHelper.getInstance(MyApplication.myApplication).get("initCode", ""); |
| | | if (TextUtils.isEmpty(initCode) && !MyApplication.myApplication.isDoInitMachine) { |
| | | new Handler().postDelayed(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | IpBean ipBean = BaseDaoSingleton.getInstance(MyApplication.myApplication).ipDao().findFirst(); |
| | | AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst(); |
| | | if (ipBean != null && adminData != null) { |
| | | MyApplication.myApplication.initMachineRequestBean(ipBean.getIp(), ipBean.getPort(), adminData.getAddressCode()); |
| | | } |
| | | Log.i("SocketActionListener1111", "连接成功"); |
| | | MyApplication.myApplication.isConncet = true; |
| | | AdminDataBean adminData = BaseDaoSingleton.getInstance(MyApplication.myApplication).adminDao().findFirst(); |
| | | Log.i("SocketActionListener1111", "isDoInitMachine==" + MyApplication.myApplication.isDoInitMachine + ""); |
| | | if (!MyApplication.myApplication.isDoInitMachine) { |
| | | Log.i("SocketActionListener1111", "isDoInitMachine"); |
| | | if (MyApplication.myApplication.ipBean != null && adminData != null) { |
| | | if (!TextUtils.isEmpty(adminData.getAddressCode())) { |
| | | Log.i("SocketActionListener1111", "initMachineRequestBean"); |
| | | MyApplication.myApplication.initMachineRequestBean(MyApplication.myApplication.ipBean.getIp(), MyApplication.myApplication.ipBean.getPort(), adminData.getAddressCode()); |
| | | |
| | | } |
| | | }, 2000); |
| | | } |
| | | |
| | | } |
| | | if (dataMessage != null) { |
| | | EasySocket.getInstance().upMessage(dataMessage); |
| | | } |
| | | if (isTest) { |
| | | MyApplication.myApplication.isConncet = true; |
| | | EasySocket.getInstance().disconnect(false); |
| | | } else { |
| | | |
| | | } |
| | | |
| | | rushState(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public void onSocketConnFail(SocketAddress socketAddress, boolean isNeedReconnect) { |
| | | // isConnected = false; |
| | | MyApplication.myApplication.isConncet = false; |
| | | rushState(); |
| | | Log.i("SocketActionListener", "socket连接失败"); |
| | | if (isTest) { |
| | | ToastUtil.show(mContext, "连接失败,请检查网络"); |
| | | // ToastUtil.show(mContext, "连接失败,请检查网络"); |
| | | } else { |
| | | if (myCallBack != null) { |
| | | myCallBack.onSocketError(-1, "socket连接失败,请检查网络"); |
| | | myCallBack.onSocketError(-1, "连接数据中心失败,请检查网络"); |
| | | } |
| | | } |
| | | } |
| | |
| | | @Override |
| | | public void onSocketDisconnect(SocketAddress socketAddress, boolean isNeedReconnect) { |
| | | Log.i("SocketActionListener", "---> socket断开连接,是否需要重连:" + isNeedReconnect); |
| | | |
| | | MyApplication.myApplication.isConncet = false; |
| | | rushState(); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * socket接收的数据 |
| | | * @param socketAddress |
| | | * @param readData |
| | | * @param originReadData |
| | | */ |
| | | @Override |
| | | public void onSocketResponse(SocketAddress socketAddress, String readData) { |
| | | Log.i("SocketActionListener", "SocketActionListener收到数据-->" + readData); |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public void onSocketResponse(SocketAddress socketAddress, OriginReadData originReadData) { |
| | | super.onSocketResponse(socketAddress, originReadData); |
| | | Log.i("SocketActionListener", "SocketActionListener收到数据-->" + originReadData.getBodyString()); |
| | | Log.i("SocketActionListener", "SocketActionListener收到数据-->" + HexUtil.bytesToHex(originReadData.getBodyBytes())); |
| | | SocketData socketData = new SocketData(); |
| | | socketData.setBodyData(originReadData.getBodyBytes()); |
| | | socketData.setHeaderData(originReadData.getHeaderData()); |
| | | dataMessage = null; |
| | | if (myCallBack!=null){ |
| | | // dataMessage = null; |
| | | if (myCallBack != null) { |
| | | myCallBack.onSocketResponse(socketData); |
| | | } |
| | | |
| | | } |
| | | }; |
| | | |
| | | private void rushState() { |
| | | try { |
| | | if (HomeActivity.homeActivity != null) { |
| | | HomeActivity.homeActivity.rushState(); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | } |