Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2009 16:43:57

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

Есть браузерное приложение. Есть постоянно запущенное серверное приложение. Общаются через mod_python (просьба не ругаться).
Серверное приложение достаточно умное и может запоминать произвольную информацию о своих клиентах.

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

На сколько я в курсе, браузер (по http 1.1) имеет постоянное соединение с сервером. Каким-то образом можно найти тот самый сокет, который связан с браузером и отправить в него новый пакет? Если да, то как браузер этот пакет будет обрабатывать?



Офлайн

#2 Дек. 19, 2009 00:20:49

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

Не сервер обращается к клиенту, а клиент обращается к серверу. HTTP протокол строится на простой модели запрос-ответ и всё тут. То, чего вы хотите, не входит в протокол и клиент после получения ответа от сервера больше ничего не ждёт. Да, есть такое в HTTP протоколе как Keep-Alive, но оно не для этого придумано. Обычно клиентское приложение опрашивает сервер с некоторой периодичностью (Ajax), таким образом сервер может оповестить клиента о наступлении какого-либо события.



Офлайн

#3 Дек. 19, 2009 00:36:18

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

poltergeist
HTTP протокол строится на простой модели запрос-ответ и всё тут
Да. Но есть работы, которые ведутся в нужном вам направлении. Вот вам точка отправки: http://googleresearch.blogspot.com/2009/11/2x-faster-web.html



Офлайн

#4 Дек. 19, 2009 00:48:15

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

regall Ага, стоит только подождать несколько лет, пока эти технологии приживутся или не приживутся:)



Офлайн

#5 Дек. 19, 2009 01:00:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

http: нотификация от сервера к клиенту

Сервер за NAT не зайдет, так что открывать им соединение - бессмысленно.
Держать открытое клиентом соединение вечно - тоже большого выигрыша не дает. Сокеты заканчиваются.

Остается только классический AJAX



Отредактировано (Дек. 19, 2009 01:53:51)

Офлайн

#6 Дек. 19, 2009 11:05:26

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

poltergeist
regall Ага, стоит только подождать несколько лет, пока эти технологии приживутся или не приживутся
Зачем ждать, там Гугулы уже выложили пример сервера и клиента на C. Вполне можно копать и пробовать.
http://github.com/mnot/nbhttp/tree/spdy - сервер на Python
http://src.chromium.org/viewvc/chrome/trunk/src/net/flip/ - клиент на С



Офлайн

#7 Дек. 22, 2009 12:38:08

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

comet ?
В частности long polling или флешь.
http://en.wikipedia.org/wiki/Comet_(programming)



Отредактировано (Дек. 22, 2009 12:39:50)

Офлайн

#8 Дек. 25, 2009 13:11:42

axe
От:
Зарегистрирован: 2008-08-07
Сообщения: 256
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

просмотрел статью про web-сокеты: http://habrahabr.ru/blogs/webdev/79038/
и в этой связи: http://code.google.com/p/pywebsocket/



Офлайн

#9 Янв. 15, 2010 22:31:04

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

http: нотификация от сервера к клиенту

проблем нету, т.к. у тебя на каждый процесс живет свой хэндлер, у него и открыт сокет к клиенту.
по этому это делают с использованием чегото вроде twisted/tornado/nevow - того что позволет крутить обработку не запуская кучи инстансов. так что судя по всему мод_питон не очень хорошо укладывается, может и можно под ним, но никто так не делает



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version