Real-time приложения
Модные фреймворки
Что дальше?
Владимир Дементьев, Злые Марсиане
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
Злые Марсиане
Slide 4
Slide 4 text
Злые Марсиане
Slide 5
Slide 5 text
Teachbase
* 2010 – 2016
Slide 6
Slide 6 text
Real-Time
The real-time web is a web … that enable users
to receive information as soon as it is published
by its authors, rather than … check a source
periodically for updates.
* https://en.wikipedia.org/wiki/Real-time_web
Slide 7
Slide 7 text
А можно пример?
Slide 8
Slide 8 text
Мгновенные сообщения
Slide 9
Slide 9 text
Уведомления
Slide 10
Slide 10 text
Визуализация данных
Slide 11
Slide 11 text
Совместный доступ
Slide 12
Slide 12 text
Многопользовательские
игры
Slide 13
Slide 13 text
История
Slide 14
Slide 14 text
До нашей эры
Slide 15
Slide 15 text
Средние века
• FlashSocket
• Short Polling
• Бесконечный iframe
• Long Polling
Slide 16
Slide 16 text
Comet
Slide 17
Slide 17 text
Эпоха Просочения
Slide 18
Slide 18 text
Эпоха Просочения
• Поддержка WebSockets в Chrome (2009)
• Опубликован стандарт WebSockets (2011)
• WebSockets в IE (2012)
• WebSockets в Safari и Android (2013)
Slide 19
Slide 19 text
2005 2007 2011 2012 2014 2017
Real-time эволюция
до н.э. Средние века Эпоха Просочения
Pub/Sub + RPC
Client
Client
Client
Channel
Channel
Channel
Server
Slide 30
Slide 30 text
Типовые проблемы
Slide 31
Slide 31 text
Транспорт
Slide 32
Slide 32 text
Транспорт
• Поддержка фоллбеков*
• Сжатие/сериализация данных
• Heartbeat
• Фаейрволы/антивирусы и ws://
* поддержка WS в браузерах в 2017 – 94%* caniuse.com
Slide 33
Slide 33 text
Проблема отключения
Client Server
Network
ws pong
ws ping
Slide 34
Slide 34 text
Проблема отключения
Client Server
Network
ws pong
ws ping
ws ping
closed
Slide 35
Slide 35 text
Проблема отключения
Client Server
Network
ws pong
ws ping
ws ping
closed
Schrödinger's Socket
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
socket.io
• Поддержка транспортов
• Pub/Sub (rooms)
• Встроенный heartbeat
• Никакого протокола → DYI