Создание сервера комет из twisted.web для сайта twisted.web - PullRequest
0 голосов
/ 08 августа 2010

Итак, у меня уже есть настроенный веб-сайт, и мне нужен комет-сервер для приложения чата.Сайт построен с использованием twisted.web, и я хочу создать комет-сервер с использованием twisted, так как я уже несколько знаком с ним.

Но я не уверен, как это сделать.Я посмотрел на этот пост и понял механику во фрагменте кода - но я попробовал его, и страница загружается AGES, а когда это происходит, она уже полна раз, а затем продолжает добавлениеих.

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

И как кометный сервер лучше всего получит данные с сервера веб-сайта?Это не просто опрос веб-сайта, или у меня может не быть комет-сервера - я бы просто поместил бесконечный цикл в обработчик GET для комет-сервера, и веб-сайт вызывал его и прерывал?Как кометный сервер и веб-сайт будут обмениваться данными?Например, как комет-сервер узнает что-нибудь о данных сеанса пользователя - кто они, чего они ждут, что он может им отправить?

Кроме того, я не уверен в этом,но нужно ли включать потоки в сервер комет или он уже многопоточный?

1 Ответ

1 голос
/ 08 августа 2010

Вы можете использовать Orbited (который является сервером комет на основе Twisted) и запустить его в том же процессе, что и ваш веб-сервер.Это довольно гладко.Вместо того, чтобы использовать встроенный прокси, вы просто используете его внутренности.Вы бы сделали что-то вроде:

from orbited.cometsession import Port
...
reactor.listenWith(Port, factory=someFactoryYouWrote, resource=someResourceYouWrote, childName='tcp')
...