Server-push

  • Автор темы bookworm
  • Дата начала

bookworm

Guest
Server-push

Кто-нибудь реализовывал server-push?
Рыскаю по php.net
ничего нет :(
 

neko

tеam neko
что подразумевается под сервер пушем?
нетскейповская технология которую поддерживал только ее браузер и ее сервер? :)
 

SiMM

Новичок
Поиском по форуму воспользуйся, очередной чатописатель, непризнающий IRC :)
 

bookworm

Guest
Не-не! :)
поиск особо ничего не дал, или я плохо искал

насчет Netscape -не совсем так, насколько я поняд тот же Mozila тоже может
А вот вопрос вот в чем.

Мне нужен бесконечный цикл. В PHP ограничение на 30 секунд на процесс. Положим это можно изменить (я еще не смотрел)
А вот как мне узнать в PHP, что клиент отвалился от http-сервера?
Э?
Чтобы не висело. Т.к. клиент может кликнуть на обновляемой странице куда-нибудь и как следсвтие вызвать еще один процесс. А что станет с тем?
 

neko

tеam neko
это теперь называется сервер-пуш

Положим это можно изменить
можно

А вот как мне узнать в PHP, что клиент отвалился от http-сервера?
Chapter 20. Connection handling

Чтобы не висело.
ничего делать не надо процес просто убьется
если ты конечно ему это не запретил делать каким-нибудь ignore_user_abort()
 

bookworm

Guest
Спасибо - вразумил.
А насчет сервер-пуш - все так.
Бесконечный цикл, который лепит границы, а в начале скрипта

Content-type: multipart/x-mixed-replace;boundary="строка"

так что все пучком.

только вот неясно - как лучше сделать
так или client-pull

решаем-с

дело в том, что мы разрабатываем автоматизированное рабочее место. их несколько. и серверная часть - на php.

спросите почему на web - отвечу, что меньше проблем с переносимостью клиента.


но есть ряд задач - например пустить проверку на вирусы на сервере и смотреть результаты...
вот такие задачи и заставили думать о реферше тем или иным способом.

-~{}~ 07.11.04 00:49:

а... а тем более что php как модуль apache работает
так что проблем с убиванием не должно быть... угу
 

neko

tеam neko
А насчет сервер-пуш - все так.
Бесконечный цикл, который лепит границы
на php это сделать невозможно

-~{}~ 07.11.04 00:56:

да и ненужно
достаточно бесполезная штука
 

bookworm

Guest
как это невозможно когда все работает?


<?php
header('Content-type: multipart/x-mixed-replace;boundary="rn9012"');


while (1)
{
echo "--rn9012\n";
echo "Content-type: text/html\n\n";
echo "<html>\n";
echo time();
echo "</html>";
echo "--rn9012\n";
flush();

sleep(1);
}

?>


Вот только FireFox понимает замену,
MSIE лепит все в кучу, а Netscape (!!!), казалось бы! родитель технологии... 6-ая версия вроде - не хочет.

-~{}~ 07.11.04 00:59:

в бесполезности я потихоньку убедился

хотя

положим нужно слайд-шоу
да причем так, чтобы картинка открывалась браузером напрямую, без html

вот такой вариант - выход


или можно передать Refresh без <META>?
как в php header()?
э?
 

neko

tеam neko
да действительно, поторопился
правда это более полезным не становится
то что ты хочешь сделать, можно сделать с тем же flush()'ом без всяких выкрутасов
кстати "индикаторы прогресса" частенько делают activex компонентами
я так понимаю автоматизированное место в интре?
там такие вещи нетрудно внедрить

-~{}~ 07.11.04 01:03:

да причем так, чтобы картинка открывалась браузером напрямую, без html

вот такой вариант - выход
аплет выход, flash даже и то лучший выход
тебе переносимость нужна или где

или можно передать Refresh без <META>?
как в php header()?
а чем с метой не устраивает?
 

bookworm

Guest
угу, в интранете
но возомжно удаленно через VPN
вяко может быть

и потом там вперемешу windows и fedora core 2
браузеры - разные
гимор удваивается


а насчет flush() - а как мне заменить документ, вот что неясно?
 

neko

tеam neko
какой там браузер в ходу?

а насчет flush() - а как мне заменить документ, вот что неясно?
никак

ты приведи примеры реальных задач
например индикатор процесса выполняемого на сервере делается на раз без всяких замен
что еще может потребоваться?
 

bookworm

Guest
хе :)
переносимость flash под linux
проблемы бывают.

кроме того flash труднее обнавлять и перерабатывать

activeX - никак, виндовая штука

а java applet - вот было бы лучшее решение
да только я не спец в java
я делаю интернет-магазины, так что до java пока не добрался

и насчет <meta> - если я кидаю тегом -то все нормально конечно
но заметь - я имел ввиду что целиком документ - графика
т.е. без тегов вообще!

остаются только заголовки
вот и вопрос - рефреш туда кинуть через header() можно или нет, но это так - лирика. просто любопытно.
 

neko

tеam neko
документ можно кстати попрбовать js'ом затереть
только реально, это не нужно

-~{}~ 07.11.04 01:10:

но заметь - я имел ввиду что целиком документ - графика
т.е. без тегов вообще!
так сделай с тегами, как проблемы :)
 

bookworm

Guest
в качестве примера привел выше - слайд-шоу :)
конечно пример высосан из пальца но все же.
ну тот же обмен с вебкамерой


ты пойми, я не говорю как сделать то-то
а как сделать то-то вот так-то

опять-таки чисто академический интерес

под федорой браузер - нетшкаф, версию не скажу...
но мерзкий.

всеж надеюсь что будут юзать MSIE или FireFox под виндой
 

neko

tеam neko
ты пойми, я не говорю как сделать то-то
а как сделать то-то вот так-то
извини мне неинтересно решать несуществующие задачи

для слайд-шоу надо к картинке добавить 3 строчки тегов и выдавать ее как страницу

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

-~{}~ 07.11.04 01:26:

<?php

set_time_limit( 0 );

echo '<html><body>';

while (1)
{
echo '<script> document.body.innerHTML = "' . time() . '"; </script>';
flush();
sleep(1);
}

?>
 

zumo

Guest
neko правильно сказал автор темы хочет сам непонятно чего но всётаки скажу что заголовком перегрузить можно
heade('Reefresh 10;http:yandex.ru');
или чтото в этом духе вобщем "повторить" мету в хедере ведь мета не с проста называеться HTTP-EQUIV это эквивалоент хттп зпголовка
А из того что я понял из поставленой задачи метод с яваскриптом есть самый лучший выбор
Правда для некоторого удобства можно сделать нулевой фрейм и в него непрерывно грузить страницу с командами
 

SiMM

Новичок
Автор оригинала: neko
забавно в 2616 об этом ни слова
Потому что там этого нет. Отсюда единственно правильный вывод - никто не гарантирует, что это будет работать, обработка подобного излишества - на волю разработчика браузера.
 

neko

tеam neko
95% того что мы имеем на этой самой воле держится
а из того что мы должны иметь у нас нет и половины :)
откуда дровишки, я кстати так и не понял
 
Сверху