4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
||||||
1 | ||||||
Непрерывное обновление сообщений в чате15.01.2011, 18:43. Показов 5656. Ответов 29
Метки нет Все метки)
(
думаю все из вас встречались с подобным скриптом, который я приведу чуть ниже. Он непрерывно выводит сообщения в чат, просто непрерывно читает текстовик отображая только новые строки. У меня, на винде, этот скрипт вообще не работает, винда просто зависает. На хостинге FreeBSD 4.8-STABLE, сообщения выводятся но, после того как загружается сообщение броузер как бы зависает, строки перестают выводиться. Когда обновляешь страницу, весь файл опять считывается до конца и соединение зависает.
Что можно предпринять чтобы заставить его нормально работать?
0
|
|
15.01.2011, 18:43 | |
Ответы с готовыми решениями:
29
Вывод сообщений в чате
Порядок отображения сообщений в чате Как сделать в чате посылку частных сообщений? |
1 / 1 / 1
Регистрация: 21.05.2010
Сообщений: 109
|
|
15.01.2011, 19:31 | 2 |
Должен быть выход из цикла while(1). Даже flush() не поможет.
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
15.01.2011, 19:32 [ТС] | 3 |
тоесть, объясни конкретнее
0
|
1 / 1 / 1
Регистрация: 21.05.2010
Сообщений: 109
|
|
15.01.2011, 19:35 | 4 |
Обновлять такое лучше JavaScript'ом, а не PHP скриптом. Скажем, раз в 5 секунд обновлять фрэйм, а скрипт должен выводить текущие строки (скажем 100) штук, а при добавлении новой строки удалять старую. Всем проще и Web-серверу и броузеру
![]()
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
15.01.2011, 20:12 [ТС] | 5 |
я думал ты что-то конкретное предложить хочешь...
обновлять фрэйм - это пройденый этап!
0
|
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 22
|
|
17.01.2011, 10:38 | 6 |
set_time_limit(0);
Хм? А что будет, если в чате 100 чел?
0
|
0 / 0 / 0
Регистрация: 26.02.2009
Сообщений: 22
|
||||||
17.01.2011, 12:37 | 7 | |||||
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
17.01.2011, 13:45 [ТС] | 8 |
то же самое, специально взял твою модификацию и проверил.
Текстовый файл выводится и после вывода последней строки - соединение зависает, даже не успевают загрузиться фрэймы, которые идут после фрэйма с чатом ![]() Блин, имею огромную мечту написать чат таким образом, но что-то всё постоянно не клеится. Все остальные разделы чата уже написаны, основывался на этом примере http://bizarre.tsua.net, а вот сделать так же как там вывод контента так и не получается ![]() Рассмотрю все предложения, думаю не только мне интересно сделать подобны stream-поток.
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
||||||
18.01.2011, 10:46 | 9 | |||||
А если так поробовать, сыро конечно, но сама идея ...
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
18.01.2011, 11:14 | 10 |
> set_time_limit(0);
> Хм? А что будет, если в чате 100 чел? Ничего не будет!
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
19.01.2011, 12:31 [ТС] | 11 |
у тебя этот пример работает, когда из другого окна записываешь строку в тестовик она выводится в броузер скриптом без обновления страницы?
скажу чесно, я ещё не попробовал, потому что у меня немного структура скрипта другая, но если ты скажешь, что у тебя это работает - я перепишу всё по примеру! По поводу он-лайн юзверь или нет: у меня есть один фрейм, который фремя от времени обновляется, он показывает количество юзверей и кто сейчас он-лан. Так вот, этот фрейм записывает каждый раз фремя обновления страницы в timestamp формате. Потом я просто проверяю date('U')-$timestamp>30 и удаляю всех кто соответствует выражению. Другим способом он-лан вычислить не получилось ![]()
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
19.01.2011, 12:47 | 12 |
У меня работает без проблем, проверял уже и под винду и под *никс.
Время процессора 00% ![]() А по поводу онлайн, я считаю лучче использовать, if (connection_status()!=0){ Так как, эта страница выдает поток непрерывно, чел может нажать просто кнопку СТОП. Тогда что? Вывод сообщений прекратиться, а твой фрейм все равно будет постоянно обновляться пока не закроют само окно. А еще лучче (наверное), переписать этот скрипт и вместо номеров строк использовать Unix TimeStamp ...
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
19.01.2011, 12:59 [ТС] | 13 |
и под винду тоже? ну ты даёшь, и что работает?
ну мля вообще, сейчас буду пробовать
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
19.01.2011, 13:19 [ТС] | 14 |
не работает!
мой пример хотя бы строки из файла до конца выводил , а потом зависал, а этот зависает сразу не выведя не одной строки ![]()
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
19.01.2011, 13:28 | 15 |
Врешь!!!
![]() Какая у тебя винда?
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
19.01.2011, 14:51 [ТС] | 16 |
Win 2000,а хостинг на FreeBSD 4.8-STABLE
я не вру, если бы знал как я уже намучался с этим бесконечным циклом
0
|
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
|
|
19.01.2011, 14:52 [ТС] | 17 |
когда запускаю на винде, всё зависает, никаких выводов в броузер, закрываю окно и потом оказывается, что файл со скриптом заблокирован на чтение и запись, приходится перезагружать винду чтобы к нему потом обратиться.
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
19.01.2011, 15:12 | 18 |
Какое у тебя мыло, я отправлю свой вариант ...
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
19.01.2011, 15:14 | 19 |
отправил, там два файла, запускаешь chat.php, потом можешь открыть 1.txt в блокноте и дописать туда что нибудь и сохранить.
Попробуй так Если будет работать, то надо уже разбираться в твоем коде
0
|
3 / 3 / 6
Регистрация: 20.06.2010
Сообщений: 580
|
|
19.01.2011, 15:17 | 20 |
host mx3.masterhost.ru [217.16.16.88]: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
Спасибо ![]()
0
|
19.01.2011, 15:17 | |
19.01.2011, 15:17 | |
Помогаю со студенческими работами здесь
20
Не отображаются ники при отправке сообщений в чате чата Обновление списка пользователей в чате.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |