conditional ping and pong echo to log
This commit is contained in:
parent
ab5abb019f
commit
3e44bfbb79
@ -11,6 +11,8 @@ import electrosphere.net.parser.net.message.EntityMessage;
|
||||
import electrosphere.net.parser.net.message.NetworkMessage;
|
||||
import electrosphere.net.parser.net.message.PlayerMessage;
|
||||
import electrosphere.net.parser.net.message.ServerMessage;
|
||||
import electrosphere.net.parser.net.message.NetworkMessage.MessageType;
|
||||
import electrosphere.net.parser.net.message.ServerMessage.ServerMessageType;
|
||||
import electrosphere.net.parser.net.raw.NetworkParser;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@ -49,8 +51,13 @@ public class ClientNetworking implements Runnable{
|
||||
|
||||
static final int MAX_CONNECTION_ATTEMPTS = 10;
|
||||
|
||||
//set to true to also get ping and pong messages in debug logging
|
||||
boolean echoPings = false;
|
||||
|
||||
//thresholds for when to send pings and to determine when we've disconnected
|
||||
static final long SEND_PING_THRESHOLD = 3000;
|
||||
static final long PING_DISCONNECT_THRESHOLD = 20000;
|
||||
//times for calculating ping-pong
|
||||
long lastPingTime = 0;
|
||||
long lastPongTime = 0;
|
||||
|
||||
@ -151,12 +158,33 @@ public class ClientNetworking implements Runnable{
|
||||
if(initialized){
|
||||
while(parser.hasIncomingMessaage()){
|
||||
NetworkMessage message = parser.popIncomingMessage();
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Client] New message " + message.getType());
|
||||
//print network message
|
||||
printMessage(message);
|
||||
//do something
|
||||
clientProtocol.handleMessage(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print out the network message type, this only prints ping and pong if echoPings is true
|
||||
*/
|
||||
void printMessage(NetworkMessage message){
|
||||
//only print ping and pong if echoPings is true
|
||||
if(message.getType() == MessageType.SERVER_MESSAGE){
|
||||
if((((ServerMessage)message).getMessageSubtype()) == ServerMessageType.PING ||
|
||||
(((ServerMessage)message).getMessageSubtype()) == ServerMessageType.PONG
|
||||
){
|
||||
if(this.echoPings == true){
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
} else {
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
} else {
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void queueOutgoingMessage(NetworkMessage message){
|
||||
|
||||
@ -23,19 +23,24 @@ import electrosphere.net.parser.net.message.NetworkMessage;
|
||||
import electrosphere.net.parser.net.message.PlayerMessage;
|
||||
import electrosphere.net.parser.net.message.ServerMessage;
|
||||
import electrosphere.net.parser.net.message.TerrainMessage;
|
||||
import electrosphere.net.parser.net.message.NetworkMessage.MessageType;
|
||||
import electrosphere.net.parser.net.message.ServerMessage.ServerMessageType;
|
||||
import electrosphere.net.server.ServerConnectionHandler;
|
||||
import electrosphere.net.server.player.Player;
|
||||
|
||||
public class ServerProtocol {
|
||||
|
||||
ServerConnectionHandler connectionHandler;
|
||||
boolean echoPings = false;
|
||||
|
||||
public ServerProtocol(ServerConnectionHandler connectionHandler){
|
||||
this.connectionHandler = connectionHandler;
|
||||
}
|
||||
|
||||
public void handleMessage(NetworkMessage message){
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
//print out message
|
||||
printMessage(message);
|
||||
//actually handle message
|
||||
switch(message.getType()){
|
||||
case ENTITY_MESSAGE:
|
||||
EntityProtocol.handleEntityMessage(connectionHandler, (EntityMessage)message);
|
||||
@ -74,4 +79,24 @@ public class ServerProtocol {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Print out the network message type, this only prints ping and pong if echoPings is true
|
||||
*/
|
||||
void printMessage(NetworkMessage message){
|
||||
//only print ping and pong if echoPings is true
|
||||
if(message.getType() == MessageType.SERVER_MESSAGE){
|
||||
if((((ServerMessage)message).getMessageSubtype()) == ServerMessageType.PING ||
|
||||
(((ServerMessage)message).getMessageSubtype()) == ServerMessageType.PONG
|
||||
){
|
||||
if(this.echoPings == true){
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
} else {
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
} else {
|
||||
LoggerInterface.loggerNetworking.DEBUG("[Server] New message " + message.getType());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user