ZiBoX
Новичок
Проверка присутствия пользователя в чате
Народ...
Раскажу все как есть.
Дописываю чат(без MySQL), уже почти все написал, но тут возникает проблема чем дальне пишешь тем больше проблем.
Моя проблема в следующем... Человек заходит в чат, в сессию прописывается его логин, пасс и то что но вошел(logined=true)
И вот пользователь хочет выйти, но он не нажимает кнопочку Выход а ракрывает окно... и тут возникает проблема.... Он остается в списках присутствия на чате.
Я пытался устронить этот недочет:
При входе пользователь добавлялся в файл таким видом:
login::ip::дата и время входа
Затем при посылке сообщения файл заходя правиться и перезаписывается время посылки собщения вместо время входа, ну я думаю это понятно(это очень !галимо!).
Далее через каждые 5 секунд фрейм с сообщениями обнавляется и проверяет последнюю дату пользователя(та которая в файле), и если time()-$timeinfile>210 тогда пользователь удаляется из файла.
Вот! но это очень бажно и неправильно(пользователь может долго сидеть в чате и ничего не говорить).
Короче у меня есть идея взятая у PErl чата GTChat... Тап посылаются пакеты пользователю(типа ping) и поэтому пользователь может сидеть до опупения. Но я не доганяю как это сделать.
А вот и вопрос:
Как сделать нормальную проверку присутствия пользователя в чате и отлов его уходя... ну хотябы отлов закрытия окна браузера(IE,OPERA, etc)...
Народ...
Раскажу все как есть.

Дописываю чат(без MySQL), уже почти все написал, но тут возникает проблема чем дальне пишешь тем больше проблем.
Моя проблема в следующем... Человек заходит в чат, в сессию прописывается его логин, пасс и то что но вошел(logined=true)
И вот пользователь хочет выйти, но он не нажимает кнопочку Выход а ракрывает окно... и тут возникает проблема.... Он остается в списках присутствия на чате.
Я пытался устронить этот недочет:
При входе пользователь добавлялся в файл таким видом:
login::ip::дата и время входа
Затем при посылке сообщения файл заходя правиться и перезаписывается время посылки собщения вместо время входа, ну я думаю это понятно(это очень !галимо!).
Далее через каждые 5 секунд фрейм с сообщениями обнавляется и проверяет последнюю дату пользователя(та которая в файле), и если time()-$timeinfile>210 тогда пользователь удаляется из файла.
Вот! но это очень бажно и неправильно(пользователь может долго сидеть в чате и ничего не говорить).
Короче у меня есть идея взятая у PErl чата GTChat... Тап посылаются пакеты пользователю(типа ping) и поэтому пользователь может сидеть до опупения. Но я не доганяю как это сделать.
А вот и вопрос:
Как сделать нормальную проверку присутствия пользователя в чате и отлов его уходя... ну хотябы отлов закрытия окна браузера(IE,OPERA, etc)...