Всем привет, часто ищу решение своих проблем на форуме, и решил поделится своим решением тоже)
В общем суть проблемы, нужно было как то наладить общение client<->server без реализации новых пакетов ( екстенды делать не умею, а кто делает берут как за новую однушку в Москве)
По гайдам форума нашел 2 полезных для меня пакета
0x19 - RequestPCCafeCouponUse - через него можно послать на сервер строку размером в 1024 символов
ExSendUIEvent - им можно передать клиенту 3 int параметра и 6...
я вот тоже думаю над сжатьем, но сами пакеты отправляют строкуЕсли вам нравиться JSON и вы уже должны делать парсер под него на клиентскок стороне, почему бы не использовать MessagePack? Он меньше по размеру и парсеры можно взять на различных языках (ну и править все для клиента). Но я так думаю что в конце концов если вы уже парсите то какую дату, может быть все сжать в бинарный формат (кстати тот же MessagePack будет соревноваться если у вас будет много текста) если у вас модель данных (поля и тип данных не изменяються) ?
A как в клиенте будет обрабатываться полученный текст, после получения пакета? Текст то ведь и есть бинарные данные, только представленны в другой обвертке (ну например те же операции с текстом, это то как можно с такими данными работать в клиенте, скорее вопрос в том как клиент позвоит такой текст нам перевести во что-либо другое).я вот тоже думаю над сжатьем, но сами пакеты отправляют строку
не совсем понял вопрос, в интерфейсе в методе OnEvent уже приходит строка , она тоже имеет структуру похожую на json и из нее уже получаем те данные которые отправили с сервера, как то изменить это я думаю без ковыряния в dll ничего не сделать с этимA как в клиенте будет обрабатываться полученный текст, после получения пакета? Текст то ведь и есть бинарные данные, только представленны в другой обвертке (ну например те же операции с текстом, это то как можно с такими данными работать в клиенте, скорее вопрос в том как клиент позвоит такой текст нам перевести во что-либо другое).
268-273 можно так же делать?Я вот после 286 протокола могу подцепиться к какому-то интерфейс пакету, и обрабатывать информацию напрямую с буффера. Ну и слать их конечно тоже могу.
+ Размером пакета в 1048 символов не ограничен, там уже будет 32к
ну это протоколы лет так на 10 отстают от 286, о котором я говорю.268-273 можно так же делать?
а каким оброзом там можно подключится сразу к буфферу? или там есть функции с uc скриптах?ну это протоколы лет так на 10 отстают от 286, о котором я говорю.
по сути - это сделано екстендером самими корейцами.а каким оброзом там можно подключится сразу к буфферу? или там есть функции с uc скриптах?
для больших данных я так и сделал, но это уже выглядит как костыль на костыле поверх костыля) хочется все таки одним пакетом послать все данные а не спамить пакетамиВобще никто же не мешает слать нужные данные порциями в пакетах, хоть целые мегабайты данных. Главное суметь их в клиенте собрать обратно.
а почему.для больших данных я так и сделал, но это уже выглядит как костыль на костыле поверх костыля) хочется все таки одним пакетом послать все данные а не спамить пакетами
ну для емблем у клиента есть представление сколько всего байт получать будет.Можно и не слать заголовочный пакет - просто в каждом пакете отсылать "это часть такая-то из стольки-то".
Офф пакеты такие есть, как минимум парочка, связанных с эмблемой клана - она то уже давно как не крути не влазит в один пакет (полноцветный dds 256х256) и приходится порциями его слать.
Поддерживаю автора поста, если имеем небольшое ограничение в размере, и не нужно иметь открытого апи с понятными контрактами - json не лучшее решение, можно использовать альтернативы типа MessagePack, а если уже решились сами писать парсеры\форматеры то может и вовсе что-то своеMessagePack
С Ваших слов получается что весь TCP протокол - набор костылей?для больших данных я так и сделал, но это уже выглядит как костыль на костыле поверх костыля) хочется все таки одним пакетом послать все данные а не спамить пакетами
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?