2010-09-26 2 views
0

Я не совсем уверен, как я буду реализовывать это вместе с достаточной степенью безопасности. Я хочу знать, есть ли кто-то или два человека на основе строки mysql. Эти два человека абсолютно анонимны. У меня установлен сервер xmpp, но я не уверен, как это интегрируется в mysql, и у меня уже есть отдельная система входа для него. Серверная сторона делается с помощью PHPТолько два человека на определенной странице за раз?

Редактировать: Я хочу ТОЛЬКО разрешить двум людям на определенной странице, и это все. Но, если они покинут страницу, мне нужно определить, остались ли они.

+0

Что это значит: «Я хочу знать, есть ли кто-то или два человека на основе строки mysql». .. Вы хотите ограничить ТОЛЬКО ДВЕ людей в своем приложении одновременно или вы хотите узнать, кто просматривает ваше приложение в любое время? Оба могут быть выполнены, один включает сеанс, другие файлы cookie – Stewie

+0

В общем, XMPP должен автоматически запускать недоступное присутствие от имени пользователя, когда он/она «прочь» в течение длительного периода времени. Как долго это будет зависеть от настроек срока действия сеанса на сервере. Это, однако, может не на 100% соответствовать вашей цели. Поскольку ВСЕГДА существует задержка для этого автоматически недоступного присутствия для отправки (опять же, задержка зависит от вашей конфигурации.) Однако использование XMPP «просто» для этой цели кажется излишним. например Если посетитель страницы присоединяется к комнате, если у нее есть 2+ пользователя, оставьте ее автоматически. Однако вы все равно столкнетесь с условиями гонки. – DashK

ответ

2

Проблема в том, что, если кто-то закрывает свой браузер, у вас нет способа получить уведомление о том, что они покинули страницу.

Вы можете сделать запрос AJAX на странице, чтобы каждые 10-15 секунд он отправлял запрос на сервер, содержащий идентификатор сеанса. Запишите временную метку и идентификатор сеанса в таблице, и затем вы можете запросить базу данных, чтобы узнать, какие запросы были сделаны за последние 15 секунд.

+0

У меня есть настройка xmpp, поэтому мне не нужно делать опросы. Мне было интересно, есть ли другой способ, не забивая сервер – user434366

1

Вы можете попробовать решение с помощью события OnBeforeUnload, чтобы уведомить вас о том, что пользователь покинул страницу, см. best way to detect when user leaves a web page.

+0

Так что происходит, когда браузер выходит из строя или когда соединение идет вниз? – user434366

+0

@ user434366: вы не можете сделать это без какой-либо формы обратного вызова (например, ajax), сообщающей серверу каждые x секунд, что пользователь все еще находится на странице, что прекрасно в качестве решения. Я только что указал на альтернативное решение, которое не требует опроса, но потребуется некоторое время ожидания сеанса (чтобы обнаружить, что пользователь ничего не сделал в течение 5 минут, например). –

+0

ok кажется достойным плохой считаю – user434366

0

Когда вы говорите «страница», вы говорите о проверке на стороне браузера, потому что браузер должен быть в состоянии сказать вам, что пользователь все еще находится на этой странице. Если вы пытаетесь это сделать, вам нужен AJAX, как комментарий waitforatrain. Но есть некоторые лазейки:

1) Что делать, если браузер отключен javascript?

2) что делать, если пользователь неактивен после загрузки страницы? Должна ли страница оставаться «живой»?

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

  • Нет связанных вопросов^_^