Найти - Пользователи
Полная версия: http: нотификация от сервера к клиенту
Начало » Network » http: нотификация от сервера к клиенту
1
axe
Есть браузерное приложение. Есть постоянно запущенное серверное приложение. Общаются через mod_python (просьба не ругаться).
Серверное приложение достаточно умное и может запоминать произвольную информацию о своих клиентах.

Мне нужно сделать нотификацию подключенных web-приложений. Как это можно сделать?
Интересны любые способы. Доступ к серверу полный.

На сколько я в курсе, браузер (по http 1.1) имеет постоянное соединение с сервером. Каким-то образом можно найти тот самый сокет, который связан с браузером и отправить в него новый пакет? Если да, то как браузер этот пакет будет обрабатывать?
poltergeist
Не сервер обращается к клиенту, а клиент обращается к серверу. HTTP протокол строится на простой модели запрос-ответ и всё тут. То, чего вы хотите, не входит в протокол и клиент после получения ответа от сервера больше ничего не ждёт. Да, есть такое в HTTP протоколе как Keep-Alive, но оно не для этого придумано. Обычно клиентское приложение опрашивает сервер с некоторой периодичностью (Ajax), таким образом сервер может оповестить клиента о наступлении какого-либо события.
regall
poltergeist
HTTP протокол строится на простой модели запрос-ответ и всё тут
Да. Но есть работы, которые ведутся в нужном вам направлении. Вот вам точка отправки: http://googleresearch.blogspot.com/2009/11/2x-faster-web.html
poltergeist
regall Ага, стоит только подождать несколько лет, пока эти технологии приживутся или не приживутся:)
Андрей Светлов
Сервер за NAT не зайдет, так что открывать им соединение - бессмысленно.
Держать открытое клиентом соединение вечно - тоже большого выигрыша не дает. Сокеты заканчиваются.

Остается только классический AJAX
regall
poltergeist
regall Ага, стоит только подождать несколько лет, пока эти технологии приживутся или не приживутся
Зачем ждать, там Гугулы уже выложили пример сервера и клиента на C. Вполне можно копать и пробовать.
http://github.com/mnot/nbhttp/tree/spdy - сервер на Python
http://src.chromium.org/viewvc/chrome/trunk/src/net/flip/ - клиент на С
shiza
comet ?
В частности long polling или флешь.
http://en.wikipedia.org/wiki/Comet_(programming)
axe
просмотрел статью про web-сокеты: http://habrahabr.ru/blogs/webdev/79038/
и в этой связи: http://code.google.com/p/pywebsocket/
cybergrind
проблем нету, т.к. у тебя на каждый процесс живет свой хэндлер, у него и открыт сокет к клиенту.
по этому это делают с использованием чегото вроде twisted/tornado/nevow - того что позволет крутить обработку не запуская кучи инстансов. так что судя по всему мод_питон не очень хорошо укладывается, может и можно под ним, но никто так не делает
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB