Несколько проблем с созданием системы чата на основе веб - PullRequest
0 голосов
/ 20 марта 2011

Я решил создать веб-систему чата для опыта. Я использую смесь AJAX (jQuery), PHP и JSON для передачи данных. Теперь, когда я начал думать о некоторых вещах, я пришел к блоку разума.

Прямо сейчас я использую javascript для публикации последнего загруженного идентификатора сообщения в php-файле, который запрашивает данные и отображает новые сообщения в json, а затем отображает эти сообщения по порядку на странице. Тем не менее, даты не отражают текущее время для пользователя. Поскольку я использую php для получения текущего времени, я понятия не имею, как отобразить правильное время для пользователя с учетом его часового пояса. Во-вторых, как бы я включил список кто в сети с этим методом? Я мог бы создать отдельную таблицу и обновить ее, когда пользователь создает сеанс, и удалить свое имя, когда он заканчивает сеанс; но что, если они не закроют это должным образом? Должен ли я просто добавить их последнее отправленное сообщение в таблицу, и если прошло около 5 минут с момента, когда их последнее сообщение показало, что пользователь отключен? Наконец, эффективен ли метод, который я использую для сбора новых сообщений? Это лучший способ обойти это? Я ценю любой вклад.

1 Ответ

0 голосов
/ 20 марта 2011

Это, похоже, связано: Определение часового пояса пользователя

Я собираюсь заставить вас пойти туда для фрагмента кода, чтобы вы правильно оценили ваши отзывы.

У меня сложилось впечатление, что Javascript - это лучший / самый простой способ получить эти данные.

Что я, вероятно, хотел бы сделать, это использовать GMT или какой-либо другой фиксированный часовой пояс для всего вашего сервера, а затем просто настроить его с помощью js, как только он попадет в браузер, в зависимости от их часового пояса. Либо так, либо просто соберите его один раз в начале разговора и соответствующим образом скорректируйте свой вывод. В обоих случаях могут быть преимущества.

Edit: О да, насчет "кто в сети", я думаю, вы движетесь в правильном направлении. Я мог бы предложить 2 списка. "Кто активен" и "Кто был активен недавно"

Таким образом, вы можете сделать людей неактивными через 5 минут и считать их отключенными через 10 или около того. Я предполагаю, что это примерно то же самое, но мне как-то кажется более точным.

Другой вариант - установить ajax-запрос на автоматический запуск запроса каждую минуту или около того. Когда они останавливаются, вы знаете, что пользователь исчез.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...