Что стоит за мгновенными сообщениями и обновлениями в приложениях 🤔
👉👈 Привет! На связи Владимир Бурмистров, главный системный аналитик ИТ-холдинга Т1.
💻 Представьте, что вы переписываетесь в чате с коллегой. Сообщения появляются мгновенно, собеседник видит, что вы печатаете, а статус «прочитано» меняется прямо на глазах. То же происходит на онлайн-досках, где несколько человек одновременно двигают стикеры и редактируют текст.
За этой привычной магией часто стоит WebSocket. Технология создаёт постоянное соединение между приложением и сервером, поэтому они могут обмениваться данными сразу, как только что-то произошло.
➡️ Звучит удобно, но на практике быстро появляются вопросы. Например, что случится, если у пользователя пропадёт интернет?
Система должна заметить разрыв соединения, корректно закрыть сессию, а после возвращения пользователя — восстановить пропущенные данные.
➡️ Как доставить сообщение тысячам пользователей?
Когда нагрузка растёт, одного сервера уже не хватает. Пользователи подключаются к разным серверам, а события между ними приходится передавать через Kafka, Redis или другие инструменты.
➡️ Всегда ли нужен WebSocket?
Для чатов, совместного редактирования и онлайн-игр — часто да. Уведомления и новостные ленты обычно можно организовать проще, поэтому выбор технологии начинается с задачи и требований к скорости.
📎 В своей статье на Хабре Владимир Бурмистров разобрал, как WebSocket работает изнутри, что важно учесть при проектировании и как описывать такие задачи для команды на понятном ей языке.
👉👈 Привет! На связи Владимир Бурмистров, главный системный аналитик ИТ-холдинга Т1.
💻 Представьте, что вы переписываетесь в чате с коллегой. Сообщения появляются мгновенно, собеседник видит, что вы печатаете, а статус «прочитано» меняется прямо на глазах. То же происходит на онлайн-досках, где несколько человек одновременно двигают стикеры и редактируют текст.
За этой привычной магией часто стоит WebSocket. Технология создаёт постоянное соединение между приложением и сервером, поэтому они могут обмениваться данными сразу, как только что-то произошло.
➡️ Звучит удобно, но на практике быстро появляются вопросы. Например, что случится, если у пользователя пропадёт интернет?
Система должна заметить разрыв соединения, корректно закрыть сессию, а после возвращения пользователя — восстановить пропущенные данные.
➡️ Как доставить сообщение тысячам пользователей?
Когда нагрузка растёт, одного сервера уже не хватает. Пользователи подключаются к разным серверам, а события между ними приходится передавать через Kafka, Redis или другие инструменты.
➡️ Всегда ли нужен WebSocket?
Для чатов, совместного редактирования и онлайн-игр — часто да. Уведомления и новостные ленты обычно можно организовать проще, поэтому выбор технологии начинается с задачи и требований к скорости.
📎 В своей статье на Хабре Владимир Бурмистров разобрал, как WebSocket работает изнутри, что важно учесть при проектировании и как описывать такие задачи для команды на понятном ей языке.