This commit is contained in:
@@ -2,34 +2,50 @@ package network.server;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.Socket;
|
||||
import java.util.Random;
|
||||
|
||||
import network.Connexion;
|
||||
import network.packets.ConnexionInfoPacket;
|
||||
import network.packets.KeepAlivePacket;
|
||||
import network.protocol.packets.ConnexionInfoPacket;
|
||||
import network.protocol.packets.DisconnectPacket;
|
||||
import network.protocol.packets.KeepAlivePacket;
|
||||
|
||||
public class ServerConnexion extends Connexion{
|
||||
public class ServerConnexion extends Connexion {
|
||||
|
||||
public ServerConnexion(Socket socket) throws IOException {
|
||||
private final Server server;
|
||||
private final KeepAliveHandler keepAliveHandler;
|
||||
private boolean shouldClose = false;
|
||||
|
||||
public ServerConnexion(Socket socket, Server server) throws IOException {
|
||||
super(socket);
|
||||
System.out.println("Bonjour le client !");
|
||||
sendKeepAlive();
|
||||
this.server = server;
|
||||
this.keepAliveHandler = new KeepAliveHandler(this);
|
||||
}
|
||||
|
||||
public void sendKeepAlive() throws IOException {
|
||||
Random r = new Random();
|
||||
sendPacket(new KeepAlivePacket(r.nextLong()));
|
||||
public boolean update() {
|
||||
if (shouldClose)
|
||||
return false;
|
||||
return this.keepAliveHandler.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(ConnexionInfoPacket packet) {
|
||||
// TODO Auto-generated method stub
|
||||
throw new UnsupportedOperationException("Unimplemented method 'visit'");
|
||||
public void close() {
|
||||
sendPacket(new DisconnectPacket("Server stopped"));
|
||||
super.close();
|
||||
shouldClose = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(KeepAlivePacket packet) {
|
||||
System.out.println("Je l'ai reçu !");
|
||||
public void visitPacket(ConnexionInfoPacket packet) {
|
||||
throw new UnsupportedOperationException("Unimplemented method 'visitPacket'");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void visitPacket(KeepAlivePacket packet) {
|
||||
this.keepAliveHandler.recievedKeepAlive(packet.getKeepAliveId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPacket(DisconnectPacket packet) {
|
||||
close();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user