Commit 934b29df authored by Administrator's avatar Administrator

update

parent 5133d532
...@@ -50,6 +50,7 @@ public class NatClientChannelHandler extends SimpleChannelInboundHandler<NatMess ...@@ -50,6 +50,7 @@ public class NatClientChannelHandler extends SimpleChannelInboundHandler<NatMess
return; return;
} }
log.info("disconnect for request:{}", serialNumber);
g4ProxyClient.getHttpProxyConnectionManager().releaseConnection(serialNumber); g4ProxyClient.getHttpProxyConnectionManager().releaseConnection(serialNumber);
} }
......
...@@ -6,6 +6,27 @@ import lombok.Data; ...@@ -6,6 +6,27 @@ import lombok.Data;
public class NatMessage { public class NatMessage {
public String getReadableType() {
switch (type) {
case C_TYPE_REGISTER:
return "C_TYPE_REGISTER";
case TYPE_HEARTBEAT:
return "TYPE_HEARTBEAT";
case TYPE_CONNECT:
return "TYPE_CONNECT";
case TYPE_DISCONNECT:
return "TYPE_DISCONNECT";
case P_TYPE_TRANSFER:
return "P_TYPE_TRANSFER";
case C_TYPE_CONTROL:
return "C_TYPE_CONTROL";
case TYPE_CONNECT_READY:
return "TYPE_CONNECT_READY";
default:
return "UNKNOWN";
}
}
/** /**
* 客户端连接服务器,将会带有客户端id * 客户端连接服务器,将会带有客户端id
*/ */
......
...@@ -55,8 +55,8 @@ public class G4ProxyServer { ...@@ -55,8 +55,8 @@ public class G4ProxyServer {
); );
natServerBootStrap.group(serverBossGroup, serverWorkerGroup) natServerBootStrap.group(serverBossGroup, serverWorkerGroup)
// .channelFactory(NioUdtProvider.BYTE_ACCEPTOR) // .channelFactory(NioUdtProvider.BYTE_ACCEPTOR)
// .option(ChannelOption.SO_BACKLOG, 10) .option(ChannelOption.SO_BACKLOG, 10)
// .option(ChannelOption.SO_REUSEADDR, true) .option(ChannelOption.SO_REUSEADDR, true)
.channel(NioServerSocketChannel.class) .channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() { .childHandler(new ChannelInitializer<SocketChannel>() {
@Override @Override
...@@ -81,12 +81,15 @@ public class G4ProxyServer { ...@@ -81,12 +81,15 @@ public class G4ProxyServer {
ServerBootstrap userMapServerBootStrap = new ServerBootstrap(); ServerBootstrap userMapServerBootStrap = new ServerBootstrap();
serverBossGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("userMapping-boss-group" + DefaultThreadFactory.toPoolName(NioEventLoopGroup.class))); serverBossGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("userMapping-boss-group" + DefaultThreadFactory.toPoolName(NioEventLoopGroup.class)));
serverWorkerGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("userMapping-worker-group" + DefaultThreadFactory.toPoolName(NioEventLoopGroup.class))); serverWorkerGroup = new NioEventLoopGroup(0, new DefaultThreadFactory("userMapping-worker-group" + DefaultThreadFactory.toPoolName(NioEventLoopGroup.class)));
userMapServerBootStrap.group(serverBossGroup, serverWorkerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {
@Override userMapServerBootStrap.group(serverBossGroup, serverWorkerGroup)
public void initChannel(SocketChannel ch) throws Exception { .channel(NioServerSocketChannel.class)
ch.pipeline().addLast(new UserMappingChannelHandler(clientManager)); .childHandler(new ChannelInitializer<SocketChannel>() {
} @Override
}); public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new UserMappingChannelHandler(clientManager));
}
});
clientManager.setUserMappingBootstrap(userMapServerBootStrap); clientManager.setUserMappingBootstrap(userMapServerBootStrap);
} }
......
...@@ -26,6 +26,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess ...@@ -26,6 +26,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
@Override @Override
protected void channelRead0(ChannelHandlerContext ctx, NatMessage msg) throws Exception { protected void channelRead0(ChannelHandlerContext ctx, NatMessage msg) throws Exception {
log.info("received message type:{} for request:{}", msg.getReadableType(), msg.getSerialNumber());
switch (msg.getType()) { switch (msg.getType()) {
case NatMessage.TYPE_HEARTBEAT: case NatMessage.TYPE_HEARTBEAT:
handleHeartbeatMessage(ctx, msg); handleHeartbeatMessage(ctx, msg);
...@@ -127,6 +128,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess ...@@ -127,6 +128,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
ByteBuf buf = ctx.alloc().buffer(data.length); ByteBuf buf = ctx.alloc().buffer(data.length);
buf.writeBytes(data); buf.writeBytes(data);
userMappingChannel.writeAndFlush(buf); userMappingChannel.writeAndFlush(buf);
log.info("reply completed for clientId:{} for request:{}", clientId, seq);
} }
private void handleDisconnectMessage(ChannelHandlerContext ctx, NatMessage msg) { private void handleDisconnectMessage(ChannelHandlerContext ctx, NatMessage msg) {
...@@ -147,11 +149,13 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess ...@@ -147,11 +149,13 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
return; return;
} }
Channel userMappingChannel = client.queryUserMappingChannel(seq); Channel userMappingChannel = client.queryUserMappingChannel(seq);
if (userMappingChannel == null) { if (userMappingChannel == null) {
log.warn("can not find userMapping channel for request :{} client:{} when recieved disconnect message", seq, client); log.warn("can not find userMapping channel for request :{} client:{} when recieved disconnect message", seq, client);
return; return;
} }
log.info("close user mapping due to sever endpoint closed for request:{}", seq);
userMappingChannel.close(); userMappingChannel.close();
} }
......
...@@ -109,6 +109,7 @@ public class UserMappingChannelHandler extends SimpleChannelInboundHandler<ByteB ...@@ -109,6 +109,7 @@ public class UserMappingChannelHandler extends SimpleChannelInboundHandler<ByteB
public void channelInactive(ChannelHandlerContext ctx) throws Exception { public void channelInactive(ChannelHandlerContext ctx) throws Exception {
// user mapping client disconnect initiative // user mapping client disconnect initiative
Channel channel = ctx.channel(); Channel channel = ctx.channel();
log.info("user mapping client disconnect initiative");
closeHttpProxyEndPoint(ctx); closeHttpProxyEndPoint(ctx);
if (channel.isActive()) { if (channel.isActive()) {
channel.close(); channel.close();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment