Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Постоянное соединение между сервером и браузером

5.9K
15 марта 2007 года
DENWER
35 / / 10.07.2005
Здравствуйте, Господа.Такой вопрос: Как удержать постоянное соединение между браузером и сервером. А имено нужно чтобы браузер(клиент) находился в ожидании сообщений от сервера. Если кто-то сталкивался с такой задачей, пожалуйста подскажить как это можно реализовать
13
15 марта 2007 года
RussianSpy
3.0K / / 04.07.2006
Простыми средствами никак. Протокол НТТР не предполагает такого соединения. Если конечно не считать древнюю технологию Push Server на которой построены некоторые чаты. Но там черт ногу сломит.

Из других способов: ActiveX, Java Applets, Flash
5.9K
15 марта 2007 года
DENWER
35 / / 10.07.2005
Цитата: RussianSpy
Простыми средствами никак. Протокол НТТР не предполагает такого соединения. Если конечно не считать древнюю технологию Push Server на которой построены некоторые чаты. Но там черт ногу сломит.

Из других способов: ActiveX, Java Applets, Flash



Спасибо. Но всё же сделать это хоть и непростыми средствами всётаки можно.

2
15 марта 2007 года
squirL
5.6K / / 13.08.2003
нельзя ли уточнить зачем?
337
15 марта 2007 года
shine
719 / / 09.06.2006
Сделать это можно так:
1)По body.onload вызываешь через XMLHTTPRequest или аналоги в других браузерах скрипт на сервере который будет тебе выдавать данные.
2)На сервере создаешь бесконечный цикл в котором опрашиваешь нужный тебе источник данных и пихаешь все в ответ. После запихивания не забываем использовать flush().
3)Как только сервер запихнул что-то в ответ, это сразу становиться видно на клиенте. Поэтому клиент должен периодично опрашивать responseText. Значением этого responseText будет строчка состоящая из ВСЕХ предидущих ответов сервера. Поэтому скорее всего тебе прийдется эту строчку парсить.
4)Не забывай периодично обрывать соединение и снова его создавать иначе твой провайдер на тебя сильно осерчает. :)

Удачи.
3.3K
15 марта 2007 года
GENA_DJ
123 / / 08.03.2005
Если не указывать content-length в ответе, то по идее клиент не должен рвать соединение и всегда (до timeout) ждать соедующую порцию данных. Другое дело, что браузер в таком случае может не отображать страницу пока сервер не разорвет соединение.
13
15 марта 2007 года
RussianSpy
3.0K / / 04.07.2006
Цитата: shine
Сделать это можно так:
1)По body.onload вызываешь через XMLHTTPRequest или аналоги в других браузерах скрипт на сервере который будет тебе выдавать данные.
2)На сервере создаешь бесконечный цикл в котором опрашиваешь нужный тебе источник данных и пихаешь все в ответ. После запихивания не забываем использовать flush().
3)Как только сервер запихнул что-то в ответ, это сразу становиться видно на клиенте. Поэтому клиент должен периодично опрашивать responseText. Значением этого responseText будет строчка состоящая из ВСЕХ предидущих ответов сервера. Поэтому скорее всего тебе прийдется эту строчку парсить.
4)Не забывай периодично обрывать соединение и снова его создавать иначе твой провайдер на тебя сильно осерчает. :)

Удачи.


Это и есть вариация технологии Push Server... По сути "медленно" передающаяся страница. Данные досылаются с течением времени. Очень тяжел в отладке и очень много подводных камней. Если есть возможность - лучше обойтись без подобных вещей

256
15 марта 2007 года
foxweb
1.0K / / 27.07.2005
проще создать свой сокетный клиент-сервер (perl, gcc), если позволяют технические возможности.

конечно не мешало бы описать задачу, а то тут может и веб-сервер ни при чём )
13
15 марта 2007 года
RussianSpy
3.0K / / 04.07.2006
Цитата: foxweb
проще создать свой сокетный клиент-сервер (perl, gcc), если позволяют технические возможности.

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



и как ты предлагаешь через сокеты коннектиться к сокет серверу???

5.9K
15 марта 2007 года
DENWER
35 / / 10.07.2005
Цитата: RussianSpy
и как ты предлагаешь через сокеты коннектиться к сокет серверу???



Постановка задачи: Есть клиент1 (источник сообщения) который шлёт сообщение на Web сервак.Web сервер должен передать это сообщение клиенту2 (браузеру). В броузере при получение сообщения от сервера, должны отобразиться данные от клиента1. Вот и всё в принципе. Причём сообщения от клиента1 могут поступать с интервалом в 1 секунду, а могут с интервало в час. Вот поэтому мне и нужно постоянно слушать сервер.


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

337
15 марта 2007 года
shine
719 / / 09.06.2006
Цитата: RussianSpy
Это и есть вариация технологии Push Server... По сути "медленно" передающаяся страница. Данные досылаются с течением времени. Очень тяжел в отладке и очень много подводных камней. Если есть возможность - лучше обойтись без подобных вещей



Гемороя конечно хватает, но если другого выхода нет, то вариант вполне реальный.

Кстати, создатели XAJAX обещают включить в следующий релиз плугин который будет всу эту кашу сам организовывать. Ждемс :)

256
15 марта 2007 года
foxweb
1.0K / / 27.07.2005
писал я такую в точности программу. на VC. многоюзерский чат с центральным сервером. могу дать исходники.

при помощи браузера и веб-сервера такую архитектуру можно легко организовать например с помощью phpMyChat. или как его там...
5.9K
16 марта 2007 года
DENWER
35 / / 10.07.2005
Цитата: foxweb
писал я такую в точности программу. на VC. многоюзерский чат с центральным сервером. могу дать исходники.

при помощи браузера и веб-сервера такую архитектуру можно легко организовать например с помощью phpMyChat. или как его там...



Примного буду благодарен. Mail: [email]denwer@inbox.ru[/email]

27K
23 марта 2007 года
version
2 / / 23.03.2007
Может я конечно чего-то непонимаю, а как же Persistent Connection
доступный в HTTP 1.1 ?

http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1
перевод этой странички:
http://www.lib.ru/WEBMASTER/rfc2068/section-8.html
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог