From 8cd1907ec423a9a3c452f90b059249638a088701 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 1 Mar 2022 15:13:53 +0800 Subject: [PATCH] =?UTF-8?q?[Update]=E6=B7=BB=E5=8A=A0Server=E7=AB=AF?= =?UTF-8?q?=E7=9A=84=E4=B8=9A=E5=8A=A1=E8=BA=AB=E4=BB=BD=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=88=B0=E8=BF=9E=E6=8E=A5=E7=9A=84Client=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/telematic/NSDNettyManager.java | 10 ++++++++ .../mogo/telematic/client/NettyTcpClient.java | 11 +++++--- .../client/handler/NettyClientHandler.java | 10 +++++++- .../netty/MogoProtocolServerHandler.java | 25 ++++++++++++++----- .../server/netty/NettyTcpServer.java | 9 +++++++ 5 files changed, 54 insertions(+), 11 deletions(-) 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()) {