web app syncronizations, sockets, tricks and hacks

46
by Egor Malkevich 2016 18+

Upload: yahor-malkevich

Post on 09-Feb-2017

186 views

Category:

Internet


9 download

TRANSCRIPT

Page 1: Web app syncronizations, Sockets, tricks and hacks

by Egor Malkevich

2016

18+

Page 2: Web app syncronizations, Sockets, tricks and hacks

Докатился до того, что пишу код. Как? Не помню.…

Page 3: Web app syncronizations, Sockets, tricks and hacks

Проблема!?

Page 4: Web app syncronizations, Sockets, tricks and hacks

Наши ожидания

Page 5: Web app syncronizations, Sockets, tricks and hacks

Реальность

Page 6: Web app syncronizations, Sockets, tricks and hacks

По порядку

Page 7: Web app syncronizations, Sockets, tricks and hacks

Зачем вообще нам синхронизация?

Page 8: Web app syncronizations, Sockets, tricks and hacks

С чего все началось?

Page 9: Web app syncronizations, Sockets, tricks and hacks

Называется это signaling

Page 10: Web app syncronizations, Sockets, tricks and hacks

… PubSubHubbub, RSSCloud, Comet, XMPP, MQTT, Adobe LiveCycle, Google

Wave Protocol, WebHooks, WebSockets …

Page 11: Web app syncronizations, Sockets, tricks and hacks

HTTP Streaming

Page 12: Web app syncronizations, Sockets, tricks and hacks
Page 13: Web app syncronizations, Sockets, tricks and hacks

Гипотеза…

Осторожно спойлер

Page 14: Web app syncronizations, Sockets, tricks and hacks

COMET …

Long pooling

WebSockets

Page 15: Web app syncronizations, Sockets, tricks and hacks

Web Sockets

Page 16: Web app syncronizations, Sockets, tricks and hacks

Задача

на правах рекламы http://gendalf.tv

Page 17: Web app syncronizations, Sockets, tricks and hacks
Page 18: Web app syncronizations, Sockets, tricks and hacks

В общем и целом есть

https://github.com/sockjsи

Page 19: Web app syncronizations, Sockets, tricks and hacks

Проблемы с доступом к JoyCasino.com?

Ведите 7, что бы получилось joycasion7.com

Page 20: Web app syncronizations, Sockets, tricks and hacks

Client.js

Page 21: Web app syncronizations, Sockets, tricks and hacks
Page 22: Web app syncronizations, Sockets, tricks and hacks

И вуаля

Запилили

Page 23: Web app syncronizations, Sockets, tricks and hacks
Page 24: Web app syncronizations, Sockets, tricks and hacks

Users want "delightful realtime web apps".

Developers want "delightfully easy to build realtime web apps".

Operations want "delightfully easy to deploy, scale and manage realtime web apps".

Page 25: Web app syncronizations, Sockets, tricks and hacks

Одновременный коннект

Page 26: Web app syncronizations, Sockets, tricks and hacks

WebSockets and HTTP/2 transport are not unified

Page 27: Web app syncronizations, Sockets, tricks and hacks

Так много WebSockets

255 connections 200 connections

1 Dmitry

Page 28: Web app syncronizations, Sockets, tricks and hacks

Proxy servers

`WebSocket connection to 'ws://xxx:nn' failed: Connection closed before receiving a handshake response`

Page 29: Web app syncronizations, Sockets, tricks and hacks

Используете Node.js?

Page 30: Web app syncronizations, Sockets, tricks and hacks

Load balancing WebSockets is complicated

Page 31: Web app syncronizations, Sockets, tricks and hacks

WebSockets give you the illusion of reliability

Page 32: Web app syncronizations, Sockets, tricks and hacks

Why so hard?

Page 33: Web app syncronizations, Sockets, tricks and hacks

Попытки решить проблему в лоб

И

Page 34: Web app syncronizations, Sockets, tricks and hacks

По итогу

Page 35: Web app syncronizations, Sockets, tricks and hacks
Page 36: Web app syncronizations, Sockets, tricks and hacks

Альтернативы

Page 37: Web app syncronizations, Sockets, tricks and hacks

Не использовать свой socket сервер.

платный https://www.pubnub.com/

Page 38: Web app syncronizations, Sockets, tricks and hacks

Не использовать socket сервер вообще

https://goroost.com/

https://sendpulse.com/ru/webpush

https://onesignal.com/

Page 39: Web app syncronizations, Sockets, tricks and hacks

Самое интересное

Page 40: Web app syncronizations, Sockets, tricks and hacks

К примеру можно помочь socket.io

You may be happy with a 30 second delays and be fine with polling.

Page 41: Web app syncronizations, Sockets, tricks and hacks

Можно делать поведенческие запросы

Page 42: Web app syncronizations, Sockets, tricks and hacks

А вообще

Page 43: Web app syncronizations, Sockets, tricks and hacks

Не нравится?

Special for Geeks

Page 44: Web app syncronizations, Sockets, tricks and hacks

В общем случаеСледуйте примеру

И не используйте WebSockets

Page 45: Web app syncronizations, Sockets, tricks and hacks

WebSockets отличный маркетинговый

продукт

как и

Page 46: Web app syncronizations, Sockets, tricks and hacks

Всем спасибоДоклад основан на реальных событиях

https://samsaffron.com/archive/2015/12/29/websockets-caution-requiredВ докладе принимали участие:

http://stackoverflow.com/questions/7022383/how-can-i-make-a-browser-to-browser-peer-to-peer-connection/7933140#7933140

http://knoxxs.github.io/chat/architecture/real-time/2015/11/23/chat-architecture-everywhere/

И многие другие…