Commit 934b29df authored by Administrator's avatar Administrator

update

parent 5133d532
......@@ -50,6 +50,7 @@ public class NatClientChannelHandler extends SimpleChannelInboundHandler<NatMess
return;
}
log.info("disconnect for request:{}", serialNumber);
g4ProxyClient.getHttpProxyConnectionManager().releaseConnection(serialNumber);
}
......
......@@ -6,6 +6,27 @@ import lombok.Data;
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
*/
......
......@@ -55,8 +55,8 @@ public class G4ProxyServer {
);
natServerBootStrap.group(serverBossGroup, serverWorkerGroup)
// .channelFactory(NioUdtProvider.BYTE_ACCEPTOR)
// .option(ChannelOption.SO_BACKLOG, 10)
// .option(ChannelOption.SO_REUSEADDR, true)
.option(ChannelOption.SO_BACKLOG, 10)
.option(ChannelOption.SO_REUSEADDR, true)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
......@@ -81,12 +81,15 @@ public class G4ProxyServer {
ServerBootstrap userMapServerBootStrap = new ServerBootstrap();
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)));
userMapServerBootStrap.group(serverBossGroup, serverWorkerGroup).channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new UserMappingChannelHandler(clientManager));
}
});
userMapServerBootStrap.group(serverBossGroup, serverWorkerGroup)
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new UserMappingChannelHandler(clientManager));
}
});
clientManager.setUserMappingBootstrap(userMapServerBootStrap);
}
......
......@@ -26,6 +26,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
@Override
protected void channelRead0(ChannelHandlerContext ctx, NatMessage msg) throws Exception {
log.info("received message type:{} for request:{}", msg.getReadableType(), msg.getSerialNumber());
switch (msg.getType()) {
case NatMessage.TYPE_HEARTBEAT:
handleHeartbeatMessage(ctx, msg);
......@@ -127,6 +128,7 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
ByteBuf buf = ctx.alloc().buffer(data.length);
buf.writeBytes(data);
userMappingChannel.writeAndFlush(buf);
log.info("reply completed for clientId:{} for request:{}", clientId, seq);
}
private void handleDisconnectMessage(ChannelHandlerContext ctx, NatMessage msg) {
......@@ -147,11 +149,13 @@ public class NatServerChannelHandler extends SimpleChannelInboundHandler<NatMess
return;
}
Channel userMappingChannel = client.queryUserMappingChannel(seq);
if (userMappingChannel == null) {
log.warn("can not find userMapping channel for request :{} client:{} when recieved disconnect message", seq, client);
return;
}
log.info("close user mapping due to sever endpoint closed for request:{}", seq);
userMappingChannel.close();
}
......
......@@ -109,6 +109,7 @@ public class UserMappingChannelHandler extends SimpleChannelInboundHandler<ByteB
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
// user mapping client disconnect initiative
Channel channel = ctx.channel();
log.info("user mapping client disconnect initiative");
closeHttpProxyEndPoint(ctx);
if (channel.isActive()) {
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