Передача больших объемов данных

Версия Minecraft
1.7.10
API
Forge
235
3
21
Всем привет
Встал такой вопрос, как правильней будет передавать большие объемы данных между серверов и клиентом майна
Что лучше юзать, обычные пакеты с сериализацией из строки, что-то чего я не знаю или веб, сокеты и все, что поднимать уже нужно отдельно от майна
Есть 2 разных ситуации


Скриншоты экрана
Впринципе можно гонять и через веб, тк нет ничего ультра секретного, но все же тогда их проще будет отсекать всяким ПО

Данные античита
Скажем есть бинарный файл с данными для классовой проверки всего майна и всех модов, классы, методы, поля и тд
Гонять через пакеты, хз насколько это будет бить по оптимизации, даже если вынести на клиенте в отдельный поток сериализацию из строки и тд
Через веб, тогда еще острее ощущается проблема возможности отсечения или модификации через ПО, можно кнч шифровать

Нагрузка на сеть сервера не интересует, важна нагрузка на главный поток майна и все что может понизить tps
Подскажите, что думаете, как будет правильнее на ваш взгяд?
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Как часто ты это передавать собираешься? Сомневаюсь что скриншот экрана будет летать очень часто. Подойдут и обычные майнопакеты.
Для чего он тебе нужен? Античит? Урезай максимально качество картинки, jpeg позволяет.
Бинарные данные? По логике, тебе их надо один раз принять при заходе игрока и все. Тогда тоже майнопакеты.

Если уж надо много и часто пересылать, я бы поднял нетти сервак на другом порте и через него обменивался данными. Только нужно что-то типа авторизации, иначе заспамят нафиг. Не понимаю для чего здесь вебсокеты вообще и http сервер. Лишний оверхед.
 

will0376

Токсичная личность
2,077
55
585
Подойдут и обычные майнопакеты.
я пробовал. там придется разбить картинку и слать 50-80 пакетов...
Хотя вариант с jpeg я почему-то не рассматривал.

Кстати, не подскажешь как нетти серв поднять? пытался найти доки - чет не нашел(мб просто слепой)
 

tox1cozZ

aka Agravaine
8,455
598
2,892
пробовал. там придется разбить картинку и слать 50-80 пакетов...
Я увеличивал максимальный размер пакета хуком и норм 😄
У майна максимальный размер пакета 32кб, FULL HD скриншот в jpg с 30% качества весит 150-200кб. Так что даже разбить на части не так уж и сложно. Можно даже еще меньше поставить качество при желании.
22RWZj5.jpg

Кстати, не подскажешь как нетти серв поднять? пытался найти доки - чет не нашел(мб просто слепой)
Да в инете ж туторов полно... И в самом Майне есть пример.
 
235
3
21
Дамп классов с моей техномагической сборки весит около 1мб, и это чистый текст
Впринципе если отправлять его 1 раз, когда юзер заходит на сервер, то мжб можно и майновские пакеты юзать
Я думал еще оформить отправку текущего дампа пользователя на сервер, если на клиенте находит лишние классы
 

Вложения

  • classes.json.txt
    930.4 KB · Просмотры: 6
235
3
21
Заюзав 7z у меня получилось сжать 930кб до 135кб
Потом я заменил коллект классов с new HashSet<>() на new TreeSet(new HashSet<>()) чтобы классы сразу были отсортированы в алфавитном порядке, просада по времени сбора я не заметил, зато уже отсортированный дамп классов 7z сжал до 101кб

1612795056249.png
 

tox1cozZ

aka Agravaine
8,455
598
2,892
Зачем их вообще пересылать? Храни на клиенте в зашифрованном виде. Разницы никакой, ибо если человек залезет в код, то всё равно сможет изменить твой список классов.
Да и вообще хз насчет такой защиты, что мешает взять имеющийся класс и добавить в него свой код?
 
Сверху