Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > помогите настроить pywebsocket?


Автор: dipsy 25.12.2009, 18:15
суть моей исходной задачи - сделать нотификацию web-клиета. на хабре видел статью про websocket-ы.
и нашёл такой проект: http://code.google.com/p/pywebsocket/

скачал, выполнил установку по README.
теперь надо настроить под apache2. читаю: http://pywebsocket.googlecode.com/svn/trunk/src/mod_pywebsocket/__init__.py

прописываю в httpd.conf:
Код

<IfModule mod_python>
   PythonPath "sys.path+['/usr/lib/python2.5/site-packages/mod_pywebsocket']"
   PythonOption mod_pywebsocket.handler_root /home/axe/python/mod_pywebsocket/src/test/testdata/handlers
   PythonHeaderParserHandler mod_pywebsocket.headerparserhandler
</IfModule>

перегружаю apache. перегружается нормально, хотя сомневаюсь в правильности конфига.
а дальше что делать? как это должно работать?

Автор: Daevaorn 25.12.2009, 20:07
Цитата(dipsy @  25.12.2009,  19:15 Найти цитируемый пост)
а дальше что делать? как это должно работать? 

Так вам надо помочь настроить или научить пользоваться веб-сокетами?

Автор: dipsy 25.12.2009, 20:37
пока по вёб-сокетам я читал только http://mutor.74.habrahabr.ru/blogs/webdev/79038/. буду благодарен за ссылки на другие полезные статьи.

как работают обычные сокеты я знаю. не знаю, как работают вёб-сокеты.
tcp-сервер, слушающий сокет, запускается внутри apache в собственном потоке? после установки соединения - создаётся ли на сервере новый процесс или поток?

Цитата(Daevaorn @  25.12.2009,  20:07 Найти цитируемый пост)
Так Вам надо помочь настроить или научить пользоваться

иногда мне кажется это почти одно и то же smile

Автор: Dagger 8.1.2010, 13:35
Эту технику еще называют Comet (http://en.wikipedia.org/wiki/Comet_(programming)).


Автор: dipsy 8.1.2010, 20:19
Comet - это термин, который обозначает множество технологий, пытающихся решить проблемы традиционных решений - постраничного просмотра и постоянной отправки запросов серверу.

Т.е. это не конкретная техника, а там много технологий подразумевается.
Среди этого множества есть технология HTTP server push. (Попытался перевести соответствующий абзац с англоязычной википедии и вставить в русскоязычный вариант статьи про Comet.)

На сколько я понимаю, pywebsocket и должен реализовывать проталкивание событий. Но неясно, каким образом один скрипт обеспечивает работу с множеством web-клиетов. Может ли под Apache заводиться специальный поток? (и что в этом потоке будет крутиться?)
Или же вообще работает как-то по-другому...

Автор: Dagger 8.1.2010, 20:51
Скорее множество технологий используют эту технику. Принцип очень простой – не закрывать соединения. В конце 90-х так работали большинство веб чатов.

Что касается pywebsocket. Ничего особенного в настройке нет. Для начала проверьте его работу с помощью 
http://code.google.com/p/pywebsocket/source/browse/trunk/src/example/echo_client.py.

Ну и ответ по поводу
Цитата

На сколько я понимаю, pywebsocket и должен реализовывать проталкивание событий. Но неясно, каким образом один скрипт обеспечивает работу с множеством web-клиетов. Может ли под Apache заводиться специальный поток? (и что в этом потоке будет крутиться?)
Или же вообще работает как-то по-другому...


pywebsocket аботает по типу модуля для апача. В апаче я не очень силен, но судя по коду pywebsocket всей мультизадачностью управляет apache/mod_python и для работы знать внутреннее устройство необьязательно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)