Upload
ontico
View
336
Download
0
Embed Size (px)
Citation preview
CentrifugoOpen-source сервер real-time сообщений
Емелин Александр, v0.4
REAL-TIME СООБЩЕНИЯ
Сообщение о событии, доставленное клиенту в кратчайшие сроки после возникновения
НЕОБХОДИМОСТЬ
ВАУ-ЭФФЕКТ
КАК ПОЯВЛЯЕТСЯ КОНТЕНТ
Создаютпользователи
Создает бэкенд автоматически
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets
КАК ДОСТАВИТЬ КОНТЕНТ МОМЕНТАЛЬНО?
• long-polling (xhr/xdr-polling)• xhr/xdr-streaming• Eventsource (Server-Sent Events, SSE)•Websockets•HTTP/2?
БИБЛИОТЕКИ-ПОЛИФИЛЛЫ
Socket.io SockJS
и другие…
http://www.leggetter.co.uk/real-time-web-technologies-guide/
REAL-TIME WEB TECHNOLOGIES GUIDE
С ПОЗИЦИИ PYTHON-ПРОГРАММИСТА
• Асинхронный фреймворк (Tornado, asyncio)• Gevent – патчим стандартную библиотеку• Nginx-push-stream-module• Hosted-сервер с API (dklab_realplexor, LightStreamer)• Облачный сервис с API (pusher.com, pubnub.com)• Django-channels
Python GoCentrifuge Centrifugo
ПРОСТОТА ИНТЕГРАЦИИ
ИСПОЛЬЗОВАНИЕ В БРАУЗЕРЕ
REAL-TIME ОСОБЕННОСТИ
•Активные подключения в канале•События подписки на канал/отписки от канала •История сообщения в канале•Восстановление пропущенных сообщений• Разные типы каналов
ОСОБЕННОСТИ
•Возможность масштабирования на несколько машин с помощью Redis PUB/SUB
•Метрики для мониторинга• Готовые RPM/DEB пакеты, Docker-контейнер•Административный веб-интерфейс
HTTP API БИБЛИОТЕКИ
Python Ruby
PHP Go NodeJS
Просто написать для другого языка
https://github.com/centrifugal
КЛИЕНТСКИЕ БИБЛИОТЕКИ
Браузер iOS Android
ССЫЛКИ НА ПРОЕКТ
• Документация https://fzambia.gitbooks.io/centrifugal/content/
• Организация на Github https://github.com/centrifugal
• Демо-инстанс (пароль: demo) https://centrifugo.herokuapp.com
ПАСИБО!