| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > чат, без обновления |
| Автор: want_php 25.7.2003, 16:31 |
| Сделал простой чат - вот только не могу понять как вот в нормальных чатах делают что фреймы как бы не обновляется - а дополняется мой чат - он ещё плохой можете посмотретьна http://nikolaev.dp.ua/chat/ и ещё - когда пользователь закрывает чат - как узнать, что он уже ушёл? Я делал фрейм маленький и вставлял просто onUnLoad=виндов опен(чтото.пхп) на ту что-топхп передовал айдишку и скрип говорил типа всё, пока юзер и ставил ему оф лайн - чтоб в списке (в чате его не было) Вообщем понятно? заранее спасибо |
| Автор: Vaulter 26.7.2003, 23:58 | ||
на счет фреймов не наю а оффлайн моно так сделать по бырому: есть таблица: айпи юзера - время время - это время посл. обновления скажем страницы...при обновлении чата, записывай кому он там обновляется и проверяй одновременно с этим записи в таблице - если у других время скажем больше чем 10 минут назад - знатца расконнектило... |
| Автор: ssb 3.8.2003, 22:59 |
| Чтобы не обновлялся, это не на РНР. Можно на Си написать, правда не знаю, как :-( |
| Автор: Sattu 4.8.2003, 00:01 | ||
Можно и на РНР. И довольно просто. |
| Автор: arial 4.8.2003, 01:44 | ||||
Так, так, очень интересно. |
| Автор: ssb 4.8.2003, 09:33 | ||
Ну... и как же? |
| Автор: Master 4.8.2003, 09:59 |
| Об этом уже рассуждали. http://forum.vingrad.ru/index.php?act=ST&f=6&t=9829&hl=ЧАТ&s= |
| Автор: Sattu 4.8.2003, 23:58 |
| Даю простой пример: <? set_time_limit(0); .... while(1=1){ //вывод текста + обработка событий } ?> |
| Автор: Sattu 5.8.2003, 00:22 | ||
Извени Master, но там нет ничего подходящего сабжу. (ну разве слово "чат" ;) ). Имхо делать чат с фреймами и ЯваСкриптом, который подгружает текст из другого фрейма - вчерашний день. Надо сделать скрипт, который работает как программа. То есть пока не закроют окно. Итак. Фреймы: 1) вывод текста 2) поле для ввода текста (это главные, другие - по вкусу). фрейм №2 - простой ХТМЛ с формой + скрипт (именно этот скрипт пишет текст в БД). фрейм №1 - то, что я написал выше. думаю объяснил дохотчиво. Если не понятно - переспрашивайте. |
| Автор: Master 5.8.2003, 09:43 | ||
|
| Автор: MuToGeN 5.8.2003, 10:26 | ||
В виндах програма работает, пока не получит WM_CLOSE (или WM_DESTROY, точно не помню), а для PHP скриптов пока что такого не придумали. Можно создать CGI-приложение, которое будет получать SIGQUIT от апача, как только разорвется коннект... В PHP этого не отследишь. |
| Автор: Sattu 5.8.2003, 19:17 |
| Все нормально работает. Эта идея давно не новая (в плане использования в РНР). Я лично видел тмного таких чатов. Сильно она ЦПУ не грузит. Сорри, бенчмарков навести не могу (за неимением оных у меня на даный момент). Все прекрасно работает. Есть одна оговорка. Скрипт не грузит машину постоянно, он делает выборки раз в 0,5 - 1 сек. |
| Автор: Sattu 5.8.2003, 19:18 |
| Уточню: <? set_time_limit(0); .... while(1=1){ usleep(500); //вывод текста + обработка событий } ?> |