Pull to refresh

Comments 12

Что вы имеете ввиду под автоматизацией?
Авторизация != автоматизация, %username%!
А если приложение упадет, то ведь при новом запуске приложения все эти пользователи останутся в сети. Очищаете базу при запуске?
Для файе запущен отдельный thin сервер, и в случае если основное приложение падает, то файе, все равно работает, и по истечению таймаута удалит всех неактивных. Если же упадет сам thin сервер(который для файе) — то да, тут нету никаких запасных путей. Добавлю
Есть еще вот такое решение github.com/igrigorik/em-websocket.
А авторизация все же нужна, иначе к вам любой может подцепиться и сделать любого пользователя online.
В теме с websockets-rails вы, похоже, так и не разобрались. Он сделан поверх faye, поэтому работает абсолютно также: в standalone-режиме требует запуска EM-сервера типа Thin и редиса.
Но проблем с ним очень много. Функциональность из коробки потрясающая (например, можно отправлять данные конкретному пользователю, поскольку websocket-rails из коробки автомагически отслеживает пользователей через метод current_user), но заставить его работать хорошо очень сложно. И багов хватает. И разработка еле теплится. И как делать функциональные тесты (браузерные) с ним — так до сих пор непонятно.
За долгое время использования ни разу не натыкался на баги (кроме багов в своей голове с непониманием схемы работы вебсокетов). Сейчас у меня один инстанс на проекте обрабатывает больше сотни конкурентных подключений (правда, без DataStorage и синхронизации: у меня своя бизнес-логика с редисом).

А по поводу faye-rails — попробуйте без танцев с бубном получить из контроллера доступ к сессии (а между прочим, куки отправляются при websocket-хендшейке).

Олсо, совет на будущее: redis-objects — довольно гибкая и приятная вещь.
В redis можно указать время жизни записи. В схожей с вашей задаче я использовал эту фишку для автоматического удаления из базы пользователя если он долго не проявляет активности. Также это решило проблему с несработавшим unsubscribe. Чтобы мониторить активность, раз минуту отправляю пустое сообщение через faye сервер, который при получении любого сообщения продлевает время жизни записи на 3 минуты.
Sign up to leave a comment.

Articles