Задать вопрос
@ZeroSkill

Как можно оптимизировать постоянную передачу больших строк, состоящих из десятичных чисел(websocket)?

Здравствуйте, я отправляю сервер - клиент БОЛЬШИЕ строки вида "0 2132 4636 33 1 1917 4267 22 2 1878 4060 36" , где кол - во чисел кратно 4, по вебсокет соединению. Как можно сжать или что то еще, что бы оптимизировать передачу этих строк. Читал про типизированные массивы(бинарные), но что то совсем не могу разобраться. Может в них как то можно все переводить и передавать?
  • Вопрос задан
  • 106 просмотров
Подписаться 2 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
MANAB
@MANAB
Разрабатываю на C#: Web, Desktop, Gamedev
Строка в твоем случае это массив char, где char занимает 1 или 2 байта, в зависимости от способа кодировки. int занимает 4 байта. Если у тебя числа например не выходят за диапазон 16384, т.е. 16 бит (2 байта), то можно сэкономить, упаковав их в бинарном виде. Хз как в javascript это делать, в C# через побитовые сдвиги например. https://stackoverflow.com/questions/5930166/packin...
В таком случае твоя строка "0 2132 4636 33 1 1917 4267 22 2 1878 4060 36" вместо 44(88) байт займет 24 байта, т.к. 12 чисел по 2 байта и разделители уже не нужны.
Ответ написан
2ord
@2ord
Работать с массивом чисел, а не со строкой.
Запаковать в массив байтов и применить сжатие. Gzip, Deflate или что-то более специализированное, в зависимости от природы данных.
Взять хоть MessagePack или же самостоятельно:
https://developer.mozilla.org/ru/docs/Web/JavaScri...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 14:45
25000 руб./за проект
18 дек. 2024, в 14:43
25000 руб./за проект
18 дек. 2024, в 14:22
750 руб./за проект