уменьшена скорость отдачи KeepAlive
This commit is contained in:
@@ -3,14 +3,20 @@ package mc.protocol;
|
|||||||
import io.netty.channel.ChannelHandlerContext;
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
import io.netty.channel.SimpleChannelInboundHandler;
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import mc.protocol.packets.ClientSidePacket;
|
import mc.protocol.packets.ClientSidePacket;
|
||||||
import mc.protocol.event.EventBus;
|
import mc.protocol.event.EventBus;
|
||||||
import mc.protocol.pool.PacketPool;
|
import mc.protocol.pool.PacketPool;
|
||||||
import org.apache.commons.pool2.ObjectPool;
|
import org.apache.commons.pool2.ObjectPool;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class PacketInboundHandler extends SimpleChannelInboundHandler<ClientSidePacket> {
|
public class PacketInboundHandler extends SimpleChannelInboundHandler<ClientSidePacket> {
|
||||||
|
|
||||||
|
private static final String CLIENT_FORCE_DISCONNECTED_IOEXCEPTION_MESSAGE_RU = "Программа на вашем хост-компьютере разорвала установленное подключение";
|
||||||
|
|
||||||
private final ObjectPool<NettyConnectionContext> poolNettyConnectionContext;
|
private final ObjectPool<NettyConnectionContext> poolNettyConnectionContext;
|
||||||
private final PacketPool poolPackets;
|
private final PacketPool poolPackets;
|
||||||
private final EventBus eventBus;
|
private final EventBus eventBus;
|
||||||
@@ -25,4 +31,16 @@ public class PacketInboundHandler extends SimpleChannelInboundHandler<ClientSide
|
|||||||
poolNettyConnectionContext.returnObject(context);
|
poolNettyConnectionContext.returnObject(context);
|
||||||
poolPackets.returnObject(packet);
|
poolPackets.returnObject(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
|
||||||
|
if (cause instanceof IOException && cause.getLocalizedMessage().equalsIgnoreCase(CLIENT_FORCE_DISCONNECTED_IOEXCEPTION_MESSAGE_RU)) {
|
||||||
|
log.warn("Client '{}' force disconnected", ctx.channel().remoteAddress());
|
||||||
|
if (log.isTraceEnabled()) {
|
||||||
|
log.trace("", cause);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
log.error("{}", cause.getMessage(), cause);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import java.util.Base64;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -44,7 +45,14 @@ public class PacketHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onKeepAlivePlay(ConnectionContext context, PingPacket packet) {
|
public void onKeepAlivePlay(ConnectionContext context, PingPacket packet) {
|
||||||
context.sendNow(packet);
|
try {
|
||||||
|
TimeUnit.MILLISECONDS.sleep(50);
|
||||||
|
context.sendNow(packet);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
if (log.isTraceEnabled()) {
|
||||||
|
log.trace("{}", e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|||||||
Reference in New Issue
Block a user