2015-05-25 3 views
1

У нас есть веб-сайт Rails, где пользователи просматривают онлайн-опросы. 20-30% пользователей сообщают, что из-за отключения Интернета они не смогли завершить викторину. Есть ли способ отслеживать, сколько раз отключилось интернет-соединение, когда пользователь находился на определенной странице.Можно ли отслеживать отключение интернета в активной сессии пользователя?

+0

вы также можете отправить запрос на его ip по «Net :: HTTP» и зафиксировать ошибку «Net :: HTTPRequestTimeOut» или 408 –

ответ

1

Зависит от того, как и почему вы хотите отслеживать его. Вы можете сделать это с помощью свойства window.navigator.onLine на стороне клиента, которое вы могли бы попытаться войти в аналитику, когда пользователь снова подключится к сети, чтобы понять, как часто это происходит - MDN.

Если вы хотите знать на стороне сервера, в зависимости от доступных вам ресурсов, вы можете захотеть создать websocket (MDN) клиенту. Веб-раскладка будет постоянной связью между вашим устройством rails и браузером клиентов, и любые отключения должны быть заметны на стороне сервера, о которых вы можете отслеживать. Существуют существующие библиотеки для создания веб-карт с рельсами, но помните, что этот вариант, скорее всего, займет больше ресурсов сервера, так как для этого требуются постоянные подключения со всеми онлайн-пользователями вашего сайта, но вы можете передавать все ваши данные приложения по этому каналу, сохраняя другие соединения, которые в противном случае может потребоваться.

Другим вариантом, который потребует меньше ресурсов, но, возможно, больше работы с вашей стороны, будет иметь скрипт на клиенте, который каким-то образом опросит сервер, чтобы сообщить ему, что он все еще находится в сети, и вы могли бы связать это «сохранить жизнь» 'запрашивать информацию пользователя и определять разумный тайм-аут, если он не прибывает, что может потребовать запланированной задачи на сервере.

+0

. Так будет хорошей идеей запускать запросы через равные промежутки времени и сэкономить количество неудачные запросы? – sahil

+0

Вы можете это сделать, и это не должно быть слишком шумным, если вы установите соответствующий тайм-аут. Я видел, как это делалось раньше, без особых проблем, самая большая проблема с этим вариантом (и первым) заключается в том, как вы возвращаете эти данные на сервер. Если у ваших пользователей проблемы с подключением, и впоследствии они покидают страницу, у вас не будет механизма, чтобы получить значение этого счетчика на сервере, чтобы знать, что это произошло. Поэтому, если вы пойдете с таким подходом, вы можете рассмотреть возможность размещения этой информации в localStorage или что-то, что нужно отправить, если пользователь вернется. – diadical

Смежные вопросы