Added keystroke frequency limit

Updated client and server log format

#story[988] #pair[hyi25, zyt10]
This commit is contained in:
Zhi You Tan
2017-07-25 15:13:48 +12:00
parent 3785cd705f
commit 1a867be387
5 changed files with 45 additions and 32 deletions
@@ -119,7 +119,6 @@ public class ClientPacketParser {
*/ */
private static void extractHeartBeat(StreamPacket packet) { private static void extractHeartBeat(StreamPacket packet) {
long heartbeat = bytesToLong(packet.getPayload()); long heartbeat = bytesToLong(packet.getPayload());
System.out.println("[CLIENT] Received heartbeat = " + heartbeat);
} }
private static String getTimeZoneString() { private static String getTimeZoneString() {
@@ -6,6 +6,7 @@ import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.time.LocalDateTime;
import java.util.zip.CRC32; import java.util.zip.CRC32;
import java.util.zip.Checksum; import java.util.zip.Checksum;
@@ -42,7 +43,7 @@ public class ClientToServerThread implements Runnable {
clientLog("Successful handshake. Allocated ID: " + ourID, 1); clientLog("Successful handshake. Allocated ID: " + ourID, 1);
ClientState.setClientSourceId(String.valueOf(ourID)); ClientState.setClientSourceId(String.valueOf(ourID));
} else { } else {
clientLog("Unsuccessful handhsake", 1); clientLog("Unsuccessful handshake", 1);
closeSocket(); closeSocket();
return; return;
} }
@@ -54,7 +55,7 @@ public class ClientToServerThread implements Runnable {
static void clientLog(String message, int logLevel){ static void clientLog(String message, int logLevel){
if(logLevel <= LOG_LEVEL){ if(logLevel <= LOG_LEVEL){
System.out.println("[CLIENT] " + message); System.out.println("[CLIENT " + LocalDateTime.now().toLocalTime().toString() + "] " + message);
} }
} }
@@ -105,7 +106,7 @@ public class ClientToServerThread implements Runnable {
} }
} }
closeSocket(); closeSocket();
System.out.println("[CLIENT] Disconnected from server"); clientLog("Disconnected from server", 0);
} }
@@ -19,6 +19,8 @@ public class Controller implements Initializable {
@FXML @FXML
private AnchorPane contentPane; private AnchorPane contentPane;
private ClientToServerThread clientToServerThread; private ClientToServerThread clientToServerThread;
private long lastSendingTime;
private int KEY_STROKE_SENDING_FREQUENCY = 50;
private Object setContentPane(String jfxUrl) { private Object setContentPane(String jfxUrl) {
try { try {
@@ -43,11 +45,16 @@ public class Controller implements Initializable {
StartScreenController startScreenController = (StartScreenController) setContentPane("/views/StartScreenView.fxml"); StartScreenController startScreenController = (StartScreenController) setContentPane("/views/StartScreenView.fxml");
startScreenController.setController(this); startScreenController.setController(this);
ClientPacketParser.boatLocations.clear(); ClientPacketParser.boatLocations.clear();
lastSendingTime = System.currentTimeMillis();
} }
/** Handle the key-pressed event from the text field. */ /** Handle the key-pressed event from the text field. */
public void keyPressed(KeyEvent e) { public void keyPressed(KeyEvent e) {
BoatActionMessage boatActionMessage; BoatActionMessage boatActionMessage;
long currentTime = System.currentTimeMillis();
if (currentTime - lastSendingTime > KEY_STROKE_SENDING_FREQUENCY) {
lastSendingTime = currentTime;
switch (e.getCode()) { switch (e.getCode()) {
case SPACE: // align with vmg case SPACE: // align with vmg
boatActionMessage = new BoatActionMessage(BoatActionType.VMG); boatActionMessage = new BoatActionMessage(BoatActionType.VMG);
@@ -74,6 +81,7 @@ public class Controller implements Initializable {
break; break;
} }
} }
}
public void keyReleased(KeyEvent e) { public void keyReleased(KeyEvent e) {
switch (e.getCode()) { switch (e.getCode()) {
@@ -1,5 +1,6 @@
package seng302.gameServer; package seng302.gameServer;
import java.time.LocalDateTime;
import java.util.Observable; import java.util.Observable;
import seng302.client.ClientPacketParser; import seng302.client.ClientPacketParser;
import seng302.models.Player; import seng302.models.Player;
@@ -108,7 +109,7 @@ public class MainServerThread extends Observable implements Runnable, PacketBuff
static void serverLog(String message, int logLevel){ static void serverLog(String message, int logLevel){
if(logLevel <= LOG_LEVEL){ if(logLevel <= LOG_LEVEL){
System.out.println("[SERVER] " + message); System.out.println("[SERVER " + LocalDateTime.now().toLocalTime().toString() + "] " + message);
} }
} }
@@ -6,6 +6,8 @@ import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.Socket; import java.net.Socket;
import java.net.SocketException;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Observable; import java.util.Observable;
@@ -97,7 +99,7 @@ public class ServerToClientThread implements Runnable, Observer {
static void serverLog(String message, int logLevel){ static void serverLog(String message, int logLevel){
if(logLevel <= LOG_LEVEL){ if(logLevel <= LOG_LEVEL){
System.out.println("[SERVER] " + message); System.out.println("[SERVER " + LocalDateTime.now().toLocalTime().toString() + "] " + message);
} }
} }
@@ -234,8 +236,8 @@ public class ServerToClientThread implements Runnable, Observer {
} }
} catch (Exception e) { } catch (Exception e) {
// TODO: 24/07/17 zyt10 - fix a logic here when a client disconnected // TODO: 24/07/17 zyt10 - fix a logic here when a client disconnected
serverLog("ERROR OCCURRED, CLOSING SERVER CONNECTION: " + socket.getRemoteSocketAddress().toString(), 1); // serverLog("ERROR OCCURRED, CLOSING SERVER CONNECTION: " + socket.getRemoteSocketAddress().toString(), 1);
e.printStackTrace(); // e.printStackTrace();
closeSocket(); closeSocket();
return; return;
} }
@@ -346,6 +348,8 @@ public class ServerToClientThread implements Runnable, Observer {
public void sendMessage(Message message){ public void sendMessage(Message message){
try { try {
os.write(message.getBuffer()); os.write(message.getBuffer());
} catch (SocketException e) {
serverLog("Player " + sourceId + " " + e.getMessage(), 0);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }