[Update]解决空指针异常,添加对美化模式状态同步的支持

This commit is contained in:
chenfufeng
2022-03-24 19:56:42 +08:00
parent 11bb081eae
commit 50856633b0
7 changed files with 20 additions and 9 deletions

View File

@@ -9,6 +9,8 @@ public class MogoProtocolMsg {
public static final int NORMAL_DATA = 1;
// 业务相关的身份注册
public static final int IDENTITY_REGIST = 2;
// 同步美化模式状态
public static final int SYNC_MODE_STATUS = 3;
private int protocolType;
private int bodyLength;

View File

@@ -72,7 +72,6 @@ public class NSDNettyManager {
@Override
public void onChannelConnect(Channel channel) {
NettyTcpServer.getInstance().addChannel(channel);
if (mListener != null) {
mListener.onChannelConnect(channel);
}
@@ -80,7 +79,6 @@ public class NSDNettyManager {
@Override
public void onChannelDisConnect(Channel channel) {
NettyTcpServer.getInstance().removeChannel(channel);
if (mListener != null) {
mListener.onChannelDisConnect(channel);
}
@@ -105,6 +103,7 @@ public class NSDNettyManager {
nettyTcpServer.setListener(mDefaultServerListener);
nettyTcpServer.start();
} else {
Logger.i(TAG, "服务端已开启,断开连接!");
NettyTcpServer.getInstance().disconnect();
}
}
@@ -126,6 +125,10 @@ public class NSDNettyManager {
NettyTcpServer.getInstance().sendMsgToAllClients(mogoProtocolMsg);
}
public void sendMsgToSpecifiedClient(MogoProtocolMsg mogoProtocolMsg, Channel channel, ChannelFutureListener listener) {
NettyTcpServer.getInstance().sendMsgToSpecifiedClient(mogoProtocolMsg, channel, listener);
}
/**
* 服务器端注册一个可供NSD探测到的网络 Ip 地址便于给展示叫号机连接此socket
*/

View File

@@ -71,7 +71,7 @@ public class NettyClientHandler extends SimpleChannelInboundHandler<MogoProtocol
*/
@Override
public void channelActive(ChannelHandlerContext ctx) {
Logger.e(TAG, "channelActive");
Logger.d(TAG, "channelActive");
listener.onClientStatusConnectChanged(ConnectState.STATUS_CONNECT_SUCCESS, mSign);
}
@@ -110,7 +110,7 @@ public class NettyClientHandler extends SimpleChannelInboundHandler<MogoProtocol
*/
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
Logger.e(TAG, "exceptionCaught");
Logger.e(TAG, "NettyClientHandler#exceptionCaught is:" + cause.getMessage());
listener.onClientStatusConnectChanged(ConnectState.STATUS_CONNECT_ERROR, mSign);
cause.printStackTrace();
ctx.close();

View File

@@ -32,8 +32,8 @@ class ReconnectHandler(private val mNettyClient: NettyTcpClient) : ChannelInboun
@Throws(Exception::class)
override fun exceptionCaught(ctx: ChannelHandlerContext, cause: Throwable) {
Logger.e(TAG, "exceptionCaught channelId is:${ctx.channel().id()}, cause message is:${cause.message}")
ctx.close()
Logger.e(TAG, "ReconnectHandler#exceptionCaught cause message is:${cause.message}")
}
@Throws(Exception::class)

View File

@@ -70,7 +70,9 @@ public class NSDServer {
}
public void stopNSDServer() {
mNsdManager.unregisterService(mRegistrationListener);
if (mNsdManager != null) {
mNsdManager.unregisterService(mRegistrationListener);
}
}

View File

@@ -25,6 +25,7 @@ public class MogoProtocolServerHandler extends SimpleChannelInboundHandler<MogoP
@Override
public void exceptionCaught(ChannelHandlerContext ctx,
Throwable cause) {
Logger.e(TAG, "ProtocolServerHandler$exception msg is:" + cause.getMessage());
cause.printStackTrace();
ctx.close();
}
@@ -50,7 +51,8 @@ public class MogoProtocolServerHandler extends SimpleChannelInboundHandler<MogoP
*/
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
Logger.e(TAG, "channelActive");
Logger.d(TAG, "channelActive");
NettyTcpServer.getInstance().addChannel(ctx.channel());
if (mListener != null) {
mListener.onChannelConnect(ctx.channel());
}
@@ -71,9 +73,10 @@ public class MogoProtocolServerHandler extends SimpleChannelInboundHandler<MogoP
@Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
Logger.e(TAG, "channelInactive");
Logger.w(TAG, "channelInactive");
// NettyTcpServer.getInstance().setConnectStatus(false);
NettyTcpServer.getInstance().removeChannelSN(ctx.channel().id());
NettyTcpServer.getInstance().removeChannel(ctx.channel());
if (mListener != null) {
mListener.onChannelDisConnect(ctx.channel());
}

View File

@@ -149,7 +149,8 @@ public class NettyTcpServer {
public boolean sendMsgToSpecifiedClient(MogoProtocolMsg mogoProtocolMsg, Channel channel, ChannelFutureListener listener) {
boolean flag = channel != null && channel.isActive();
if (flag) {
channel.writeAndFlush(mogoProtocolMsg).addListener(listener);
ChannelFuture channelFuture = channel.writeAndFlush(mogoProtocolMsg);
if (listener != null) channelFuture.addListener(listener);
}
return flag;
}