centrifugo – open-source сервер real-time сообщений / Александр...
TRANSCRIPT
![Page 1: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/1.jpg)
CentrifugoOpen-source сервер real-time сообщений
Емелин Александр, v0.4
![Page 2: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/2.jpg)
REAL-TIME СООБЩЕНИЯ
Сообщение о событии, доставленное клиенту в кратчайшие сроки после возникновения
![Page 3: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/3.jpg)
![Page 4: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/4.jpg)
НЕОБХОДИМОСТЬ
![Page 5: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/5.jpg)
ВАУ-ЭФФЕКТ
![Page 6: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/6.jpg)
КАК ПОЯВЛЯЕТСЯ КОНТЕНТ
Создаютпользователи
Создает бэкенд автоматически
![Page 7: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/7.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
![Page 8: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/8.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)
![Page 9: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/9.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming
![Page 10: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/10.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)
![Page 11: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/11.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets
![Page 12: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/12.jpg)
![Page 13: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/13.jpg)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets•HTTP/2?
![Page 14: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/14.jpg)
БИБЛИОТЕКИ-ПОЛИФИЛЛЫ
Socket.io SockJS
и другие…
![Page 15: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/15.jpg)
![Page 16: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/16.jpg)
http://www.leggetter.co.uk/real-time-web-technologies-guide/
REAL-TIME WEB TECHNOLOGIES GUIDE
![Page 17: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/17.jpg)
С ПОЗИЦИИ PYTHON-ПРОГРАММИСТА
• Асинхронный фреймворк (Tornado, asyncio)• Gevent – патчим стандартную библиотеку• Nginx-push-stream-module• Hosted-сервер с API (dklab_realplexor, LightStreamer)• Облачный сервис с API (pusher.com, pubnub.com)• Django-channels
![Page 18: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/18.jpg)
![Page 19: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/19.jpg)
Python GoCentrifuge Centrifugo
![Page 20: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/20.jpg)
![Page 21: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/21.jpg)
ПРОСТОТА ИНТЕГРАЦИИ
![Page 22: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/22.jpg)
ИСПОЛЬЗОВАНИЕ В БРАУЗЕРЕ
![Page 23: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/23.jpg)
REAL-TIME ОСОБЕННОСТИ
•Активные подключения в канале•События подписки на канал/отписки от канала •История сообщения в канале•Восстановление пропущенных сообщений• Разные типы каналов
![Page 24: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/24.jpg)
ОСОБЕННОСТИ
•Возможность масштабирования на несколько машин с помощью Redis PUB/SUB
•Метрики для мониторинга• Готовые RPM/DEB пакеты, Docker-контейнер•Административный веб-интерфейс
![Page 25: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/25.jpg)
![Page 26: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/26.jpg)
HTTP API БИБЛИОТЕКИ
Python Ruby
PHP Go NodeJS
Просто написать для другого языка
https://github.com/centrifugal
![Page 27: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/27.jpg)
КЛИЕНТСКИЕ БИБЛИОТЕКИ
Браузер iOS Android
![Page 28: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/28.jpg)
ССЫЛКИ НА ПРОЕКТ
• Документация https://fzambia.gitbooks.io/centrifugal/content/
• Организация на Github https://github.com/centrifugal
• Демо-инстанс (пароль: demo) https://centrifugo.herokuapp.com
![Page 29: Centrifugo – open-source сервер real-time сообщений / Александр Емелин (Mail.Ru Group)](https://reader034.vdocuments.net/reader034/viewer/2022050800/586f8ffc1a28ab54768b7801/html5/thumbnails/29.jpg)
ПАСИБО!