Суббота, 30 Ноября 2024, 01:05

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Чат на PHP
scnДата: Суббота, 20 Апреля 2013, 00:56 | Сообщение # 1
был не раз
Сейчас нет на сайте
Хочу сделать чат на PHP с jQuery (ajax),
есть одна деталь которую не знаю как реализовать.
Чат нужен для браузерной игры, но в чате будут как и сообщения пользователей,
так и системные сообщения.
Есть игры где сообщения не обновляются, а только новые добавляются ( $().append() ) в чат
и сервер выдает только новые. Как это реализовать? Помогите пожалуйста
QuieteroksДата: Вторник, 30 Апреля 2013, 00:17 | Сообщение # 2
частый гость
Сейчас нет на сайте
А что именно не понятно?

Вы не можете найти новые сообщения в чат для конкретного пользователя?
Тут все просто, выборку делать по дате. Таймштамп шлите дополнительным параметром в ajax ответе и посылайте его при новом запросе, переписывая его в переменной после получения положительного ответа.

Не знаете как системные сообщения реализовать?
Так же как и пользовательские, только при формировании шаблона в данном случае обрабатывайте иначе. К примеру системные сообщения всегда от ID равному 1.
Обычное условное выражение.

Если же Вам нужен код на js, то тут сложнее, нужно писать учитывая Вашу систему и шаблон.


Если вам все равно где вы находитесь, значит вы еще не заблудились.
scnДата: Среда, 29 Мая 2013, 14:12 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quieteroks, уже понял как сделать. Как с временем, только передавать ID последнего сообщения. И в скрипте который выдает сообщения выполнять SQL запрос который удаляет сообщения, жизнь которых больше 10 секунд, рефреш 5 секунд.
Пока-что лучший вариант, что смог придумать.
Просто видел код, где ничего на сервер не передается, а поступают только новые сообщения.
Но там как я понял куки постоянно перезаписываются.


Сообщение отредактировал scn - Среда, 29 Мая 2013, 14:19
lvovandДата: Среда, 29 Мая 2013, 14:24 | Сообщение # 4
старожил
Сейчас нет на сайте
удалять сообщения необязательно так сразу, кто-то раньше зашел, кто-то позже и может путаница пойти, можно чистить раз в час или раз в сутки,
а передавая id самое то,
- по началу передаешь id=0,
- затем в php смотришь, если id =0, то просто отдаешь 10 последних сообщений и возвращаешь id послденего,
- в js присваиваешь переменной id то значение, что вернулось аяксом,
- в следующий раз в php передалось id>0 и смотришь сообщения, у которых id больше переданного id, и также возвращаешь id последнего сообщения


Разработка и продвижение сайтов. Дизайн
scnДата: Воскресенье, 02 Июня 2013, 20:37 | Сообщение # 5
был не раз
Сейчас нет на сайте
lvovand, в том и фишка, что надо удалять их сразу
lvovandДата: Воскресенье, 02 Июня 2013, 20:47 | Сообщение # 6
старожил
Сейчас нет на сайте
не совсем понял в чем фишка,
пользователь будет и так получать новые сообщения, а для удаления старых запусти отдельный демон или задачу по крону и пусть хоть каждую минуту сообщения удаляет


Разработка и продвижение сайтов. Дизайн
scnДата: Вторник, 04 Июня 2013, 13:48 | Сообщение # 7
был не раз
Сейчас нет на сайте
lvovand, лог будет в чате. И не все сообщения лога будут попадать в базу данных.
То есть после обновления страницы, сообщения лога которые не попали в базу больше не будут отображаться, а сообщения которые еще не успели удалиться будут опять отображаться и получится путанина.
Чтобы не отправлять лишние запросы на сервер, у меня в некоторых участках идет проверка на JavaScript, и если не проходит проверку
просто выполняется $('#msg').append('Действие не доступно'); такие сообщения не попадают в базу.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг