diff --git a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/NSDNettyManager.java b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/NSDNettyManager.java index 8365840..32f9efb 100644 --- a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/NSDNettyManager.java +++ b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/NSDNettyManager.java @@ -109,6 +109,11 @@ public class NSDNettyManager { } } + public void startNSDNettyServerWithSN(Context context, NettyServerListener listener, String sn) { + NettyTcpServer.sSERVER_SN = sn; + startNSDNettyServer(context, listener); + } + public boolean isServerStart() { return NettyTcpServer.getInstance().isServerStart(); } @@ -244,6 +249,11 @@ public class NSDNettyManager { } } + public String getServerSn() { + String sn = NettyTcpClient.sSERVER_SN; + return sn; + } + public void sendMogoProtocolMsgToServer(MogoProtocolMsg mogoProtocolMsg, final MessageStateListener listener) { if (mNettyTcpClient != null) { mNettyTcpClient.sendMsgToServer(mogoProtocolMsg, listener); diff --git a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/NettyTcpClient.java b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/NettyTcpClient.java index b80ab7e..072bdd0 100644 --- a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/NettyTcpClient.java +++ b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/NettyTcpClient.java @@ -36,6 +36,10 @@ import io.netty.handler.timeout.IdleStateHandler; */ public class NettyTcpClient { private static final String TAG = "NettyTcpClient"; + /** + * + */ + public volatile static String sSERVER_SN = ""; private Bootstrap bootstrap; @@ -59,7 +63,6 @@ public class NettyTcpClient { private boolean isConnecting = false; private long reconnectIntervalTime = 5000; - private static final Integer CONNECT_TIMEOUT_MILLIS = 5000; private String host; private int tcp_port; @@ -224,6 +227,9 @@ public class NettyTcpClient { @Override public void onClientStatusConnectChanged(int statusCode, String sign) { + if (listener != null) { + listener.onClientStatusConnectChanged(statusCode, sign); + } if (statusCode == ConnectState.STATUS_CONNECT_SUCCESS && !TextUtils.isEmpty(mSign)) { byte[] signByteArr = mSign.getBytes(); MogoProtocolMsg msg = new MogoProtocolMsg(IDENTITY_REGIST, signByteArr.length, signByteArr); @@ -231,9 +237,6 @@ public class NettyTcpClient { Log.d(TAG, "身份注册成功:" + isSuccess); }); } - if (listener != null) { - listener.onClientStatusConnectChanged(statusCode, sign); - } } }; diff --git a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/handler/NettyClientHandler.java b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/handler/NettyClientHandler.java index e9eead2..2aae54b 100644 --- a/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/handler/NettyClientHandler.java +++ b/libraries/mogo-telematic/src/main/java/com/mogo/telematic/client/handler/NettyClientHandler.java @@ -3,6 +3,7 @@ package com.mogo.telematic.client.handler; import android.util.Log; import com.mogo.telematic.MogoProtocolMsg; +import com.mogo.telematic.client.NettyTcpClient; import com.mogo.telematic.client.listener.NettyClientListener; import com.mogo.telematic.client.status.ConnectState; @@ -94,7 +95,14 @@ public class NettyClientHandler extends SimpleChannelInboundHandler { + if (future.isSuccess()) { + Log.d(TAG, "Netty Server端注册身份成功!"); + } else { + Log.d(TAG, "Netty Server端注册身份不成功!"); + } + }); + } // NettyTcpServer.getInstance().setConnectStatus(true); } @@ -62,6 +74,7 @@ public class MogoProtocolServerHandler extends SimpleChannelInboundHandler channelList = new CopyOnWriteArrayList<>(); @@ -146,6 +147,14 @@ public class NettyTcpServer { return flag; } + public boolean sendMsgToSpecifiedClient(MogoProtocolMsg mogoProtocolMsg, Channel channel, ChannelFutureListener listener) { + boolean flag = channel != null && channel.isActive(); + if (flag) { + channel.writeAndFlush(mogoProtocolMsg).addListener(listener); + } + return flag; + } + public void sendMsgToAllClients(MogoProtocolMsg mogoProtocolMsg) { for (Channel chl : channelList) { if (chl != null && chl.isActive()) {