оптимизировали keepAlive
This commit is contained in:
@@ -6,11 +6,8 @@ import mc.core.player.PlayerManager;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Component
|
||||
public class KeepAliveThread extends Thread {
|
||||
private static final Random RAND = new Random();
|
||||
private final Object lock = new Object();
|
||||
@Autowired
|
||||
private PlayerManager playerManager;
|
||||
@@ -25,6 +22,8 @@ public class KeepAliveThread extends Thread {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
final KeepAlivePacket keepAlivePacket = new KeepAlivePacket();
|
||||
|
||||
while (!Thread.currentThread().isInterrupted()) {
|
||||
while(playerManager.getCountPlayers() == 0) {
|
||||
synchronized (lock) {
|
||||
@@ -36,7 +35,8 @@ public class KeepAliveThread extends Thread {
|
||||
}
|
||||
}
|
||||
|
||||
playerManager.getBroadcastChannel().writeAndFlush(new KeepAlivePacket(RAND.nextLong()));
|
||||
keepAlivePacket.setPayload(System.currentTimeMillis());
|
||||
playerManager.getBroadcastChannel().writeAndFlush(keepAlivePacket);
|
||||
|
||||
try {
|
||||
Thread.sleep(interval);
|
||||
|
||||
@@ -58,7 +58,7 @@ public class WrapperNetChannel implements NetChannel {
|
||||
|
||||
@Override
|
||||
public void writeAndFlush(SCPacket pkt) {
|
||||
channel.writeAndFlush(pkt);
|
||||
channel.writeAndFlush(pkt, channel.voidPromise());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user