170 похожих чатов

Здравствуйте, есть ли смысл в переводе приложения на websocket вместо

http?

40 ответов

9 просмотров

У тебя есть реалтайм данные? ) котировки?

Dmitry-Danilov Автор вопроса

только чаты в этом плане) но в целом ведь сокеты должны дать более приятное взаимодействие за счет скорости, только смущает отсутствие нормального горизонтального масштабирования. думаете нет смысла?

Нет. При хорошем интернете http скорости хватит, а для UX достаточно будет "ощущения" скорости. При плохом интернете ws всё также надо будет переподключать

А в чем прирост скорости по сравнению с обычным http запросом?

Экономия на установке соединения)

keep alive?

Такое же масштабирование как в http - поднял несколько серверов

А чем это будет лучше sse или ws?

Нет http заголовок Можно слать бинарные данные

Ws балансируется хуже

Не совсем то же. в http запрос-ответ, и можно один запрос в один сервер, второй в другой, а запросы обычно не связаны друг с другом. С WS чаще нужно общее состояние и sticky sessions

А в http бинарники не послать?

Dmitry-Danilov Автор вопроса

Неправильно выразился, имел в виду микросервисы, не очень удобно. Плюс по архитектуре мне не очень нравятся возможности

Dmitry-Danilov Автор вопроса

Тоже справедливо

В http у тебя сессия - такое же общее состояние

Обычно не шлют

Шлют. Картинки ж не в base64 приходят)

Я не про картинки а про данные

Но их тоже шлют. И идут они бинарно, а не текстом. Потому что http не имеет ограничений на тело. Тот же grpc шлёт бинарники, на сколько я помню

Непонятно, зачем кому то понадобились данные в бинарном виде на клиенте 🤔

Экономия на трафике, на сериализации, "обфускация" :D

ещё есть всякие protobuf, thrift

Сэкономить на трафике можно и обычным gzip

Это другой аспект

если есть ожидаемые данные, то бинарные данные в выигрыше, только схему данных на фронте и беке нужно иметь)

тоесть ты можешь условные свойства сжать до каких то обозначений и их значения ещё сжать

А gzip на что?

камон я тебе обяснил

Давайте сначала, что вы под бинарными понимаете?

я ничего не понимаю в етом, я просто пишу тебе абстрактно thrift например шлешь данные структурами, которые парсятся по схеме на беке/фронте благодаря этому можешь отбросить в постдате те же самые property в json потому что у тебя есть схема, и по ней можешь восстановить отброшеннве проперти хз, мб это сериализация называется

очень абстрактно))

Отправка последовательностью байт в некоторой схеме, которые понимает получатель. JSON, XML и тп - текстовый формат. Это отправка текста в некоторой текстовой кодировке (UTF-8 и тп). Текста в некотором формате, который умеет потом десериализовываться в данные. И он сначала будет парситься, как текст, а не как просто последовательность чисел. Простые отличия, число "2000000000" текстом - это 10 байт (на 10 символов), а бинарно это число на 4 байта. Аналогично, в тексте тратится объём на имена свойств, на синтаксис, на всё то, что делает данные читаемыми для человека. В более сложных случаях бинарный формат лишён ограничений, которые дают популярные текстовые. Например, может позволить иметь явные ссылки, или типы данных, которых нет в формате сериализации. Конечно, это уже зависит от формата конкретного. Но текстовые используют лишь несколько конкретных - json, xml.

Спасибо, но как это в контексте браузера? Предлагаете thrift прямо клиенту кидать?

Для использования этого сайта, пожалуйста установите Apache Thrift Deserializer for Chrome

Я не знаком с thrift

ору, он не про него, а в целом да, так и кидать просто добавь схемы и свой код который будет обрабатывать данные

Имеет, но такие вещи как кеширование придётся самому реализовывать при необходимости

Перечитайте тред

Grpc на каждое сообщение новый запрос шлёт?

Я не знаю, как он в вебе работает( У них недавно ещё вроде обновление было

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
61
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Привет всем. Не знаю, удачный ли чатик я выбрал для вопроса, но он как будто в целом про концепцию фп и конкретно про Haskell. Прочитал, что в целом в мире фп нет идеи мутабел...
Gellert Cringewald
15
Как добавить ссылку в Быстрый доступ в Проводнике windows 10? Нашёл, как на power shell сделать, но может есть способ через Дельфи?
А
31
@helgispbru @Dreamer_0x01 @Pathologic93 @webber_12 Не уверен, что вам всем это жутко интересно, но в продолжение недавнего диалога отправлю свои наброски. Хочу понять, правил...
Андрей [aharito] Харитонов
13
Карта сайта