Size: a a a

2017 November 22

NM

Nurlan Moldomurov in Rubyata
источник
2017 November 23

D

Daniel in Rubyata
Посоветуйте лучшее решение пожалуйста:

Есть бэк и фронт(vue.js), фронт обращается только по апишке к бэку. На фронте нужно следить, есть ли нотификации какие нибудь или нет(изменения статуса в заказе).

- Первая мысль это делать полинг допустим каждые 3 секунды

 - Вторая - использовать action cable, которая интегрирует веб сокеты.


Что лучше ?
источник

RS

Rustam Sharshenov in Rubyata
веб-сокеты лучше, но сложнее - добавляется pub-sub, зависимость от редиса
источник

RS

Rustam Sharshenov in Rubyata
если не нужны "моментальные" уведомления, то поллинг сойдет
источник

RK

Roman Kononov in Rubyata
Есть ещё сторонние сервисы
источник

RK

Roman Kononov in Rubyata
Пушер вроде
источник

RS

Rustam Sharshenov in Rubyata
ну тогда +1 зависимость
источник

DM

Daniel Manasov in Rubyata
Редис же нужен будет только при нескольких серверах, или я что-то не понимаю?
источник

RS

Rustam Sharshenov in Rubyata
для action cable redis нужен
источник

PB

Patrick Bateman in Rubyata
Daniel
Посоветуйте лучшее решение пожалуйста:

Есть бэк и фронт(vue.js), фронт обращается только по апишке к бэку. На фронте нужно следить, есть ли нотификации какие нибудь или нет(изменения статуса в заказе).

- Первая мысль это делать полинг допустим каждые 3 секунды

 - Вторая - использовать action cable, которая интегрирует веб сокеты.


Что лучше ?
Есть ещё третий вариант — long polling с незакрывающимися соединениями.
источник

RS

Rustam Sharshenov in Rubyata
ну и еще sse есть тогда уж)
источник

PB

Patrick Bateman in Rubyata
Угу.
источник

RS

Rustam Sharshenov in Rubyata
но с long polling может потом проблема возникнуть - прокся(nginx) коннекшены может почикать
источник

PB

Patrick Bateman in Rubyata
С WebSocket'ами тоже могут быть проблемы. Во всяких банках бывает не работает совсем.
источник

PB

Patrick Bateman in Rubyata
Нет идеального решения. :)
источник

MS

Mikhail Sytchev in Rubyata
Daniel
Посоветуйте лучшее решение пожалуйста:

Есть бэк и фронт(vue.js), фронт обращается только по апишке к бэку. На фронте нужно следить, есть ли нотификации какие нибудь или нет(изменения статуса в заказе).

- Первая мысль это делать полинг допустим каждые 3 секунды

 - Вторая - использовать action cable, которая интегрирует веб сокеты.


Что лучше ?
С каким интервалом проверять?
источник

С

СчАсТлИвАя НО НЕ ТВОЯ ❤️❤️❤️ in Rubyata
От кучи факторов зависит: насколько нужен риалтайм, как настроены серверы (не получится ли так, что каждое открытое соединение на лонг-поллинг или вебсокет будет блокировать целый воркер веб-сервера?), и так далее.

Если совсем коротко:
1. (!!!) Если можно не заморочиться, не заморачивайся (!!!)
Всё.
источник

RS

Rustam Sharshenov in Rubyata
у тебя же там не чатик?)
источник

С

СчАсТлИвАя НО НЕ ТВОЯ ❤️❤️❤️ in Rubyata
Если чятик, то лучше сразу отдельный сервис, и на Эликсире, проще будет, чем с рельсами возиться )
источник

ch

core hook in Rubyata
ws
источник