mirror of
https://github.com/magefree/mage.git
synced 2025-12-21 11:02:00 -08:00
Net traffic compressing. Enabled by default. Can be disabled by -Dnocompress on server.
This commit is contained in:
parent
41546cf7d3
commit
05759b2966
3 changed files with 34 additions and 6 deletions
|
|
@ -41,6 +41,7 @@ import mage.client.util.GameManager;
|
||||||
import mage.client.util.object.SaveObjectUtil;
|
import mage.client.util.object.SaveObjectUtil;
|
||||||
import mage.interfaces.callback.CallbackClient;
|
import mage.interfaces.callback.CallbackClient;
|
||||||
import mage.interfaces.callback.ClientCallback;
|
import mage.interfaces.callback.ClientCallback;
|
||||||
|
import mage.utils.CompressUtil;
|
||||||
import mage.view.AbilityPickerView;
|
import mage.view.AbilityPickerView;
|
||||||
import mage.view.ChatMessage;
|
import mage.view.ChatMessage;
|
||||||
import mage.view.DraftClientMessage;
|
import mage.view.DraftClientMessage;
|
||||||
|
|
@ -76,6 +77,7 @@ public class CallbackClientImpl implements CallbackClient {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
SaveObjectUtil.saveObject(callback.getData(), callback.getMethod());
|
SaveObjectUtil.saveObject(callback.getData(), callback.getMethod());
|
||||||
|
callback.setData(CompressUtil.decompress(callback.getData()));
|
||||||
try {
|
try {
|
||||||
logger.info(callback.getMessageId() + " -- " + callback.getMethod());
|
logger.info(callback.getMessageId() + " -- " + callback.getMethod());
|
||||||
if (callback.getMethod().equals("startGame")) {
|
if (callback.getMethod().equals("startGame")) {
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,39 @@ import java.io.ObjectOutputStream;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility class to save an object on disk.
|
||||||
|
*
|
||||||
|
* @author ayrat
|
||||||
|
*/
|
||||||
public class SaveObjectUtil {
|
public class SaveObjectUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines should data be saved or not.
|
||||||
|
* Read from system property:
|
||||||
|
*/
|
||||||
private static boolean saveIncomeData = false;
|
private static boolean saveIncomeData = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the system property name to get {@link #saveIncomeData} value from.
|
||||||
|
*/
|
||||||
|
private static final String SAVE_DATA_PROPERTY = "saveObjects";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Date pattern used to form filename to save object to.
|
||||||
|
*/
|
||||||
|
private static final String DATE_PATTERN = "[yyyy_MM_dd][H-mm-ss]";
|
||||||
|
|
||||||
static {
|
static {
|
||||||
saveIncomeData = System.getProperty("saveObjects") != null;
|
saveIncomeData = System.getProperty(SAVE_DATA_PROPERTY) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save object on disk.
|
||||||
|
*
|
||||||
|
* @param object Object to save.
|
||||||
|
* @param name Part of name that will be used to form original filename to save object to.
|
||||||
|
*/
|
||||||
public static void saveObject(Object object, String name) {
|
public static void saveObject(Object object, String name) {
|
||||||
if (saveIncomeData) {
|
if (saveIncomeData) {
|
||||||
ObjectOutputStream oos = null;
|
ObjectOutputStream oos = null;
|
||||||
|
|
@ -28,7 +52,7 @@ public class SaveObjectUtil {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String time = now("[yyyy_MM_dd][H-mm-ss]");
|
String time = now(DATE_PATTERN);
|
||||||
File f = new File("income" + File.separator + name + "_" + time + ".save");
|
File f = new File("income" + File.separator + name + "_" + time + ".save");
|
||||||
if (!f.exists()) {
|
if (!f.exists()) {
|
||||||
f.createNewFile();
|
f.createNewFile();
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,8 @@ package mage.interfaces.callback;
|
||||||
|
|
||||||
import java.util.concurrent.locks.Condition;
|
import java.util.concurrent.locks.Condition;
|
||||||
import java.util.concurrent.locks.ReentrantLock;
|
import java.util.concurrent.locks.ReentrantLock;
|
||||||
|
|
||||||
|
import mage.utils.CompressUtil;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -85,7 +87,7 @@ public class CallbackServerSession {
|
||||||
waiting.await();
|
waiting.await();
|
||||||
}
|
}
|
||||||
callback.setMethod(call.getMethod());
|
callback.setMethod(call.getMethod());
|
||||||
callback.setData(call.getData());
|
callback.setData(CompressUtil.compress(call.getData()));
|
||||||
callback.setObjectId(call.getObjectId());
|
callback.setObjectId(call.getObjectId());
|
||||||
callback.setMessageId(call.getMessageId());
|
callback.setMessageId(call.getMessageId());
|
||||||
callbackCalled.signal();
|
callbackCalled.signal();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue