2013-10-02 2 views
1

Мы небольшая команда, планирующая разработать чат-сервис в Django с помощью Pusher, чтобы нажимать сообщения в режиме реального времени.Каковы преимущества (или потребности) использования торнадо с Pusher для приложения Django?

До сих пор мы понимаем, что нам нужен асинхронный способ передачи сообщений клиентам Android и веб-браузеров, и мы выбрали размещенное решение (Pusher) вместо того, чтобы внедрять наши собственные, возможно, используя sockjs и торнадо. Мы думали, что нам больше не нужен Торнадо, теперь у нас есть Пушер!

В документации модуля модуля Python (https://github.com/pusher/pusher_client_python) есть только небольшое упоминание о Django, однако есть раздел Tornado, в котором говорится: «Использовать веб-сервер Tornado для запуска событий ...». Поэтому мы задаемся вопросом, зачем нам нужно или какое использование должно использовать Tornado для запуска событий с нашего сервера на Pusher.

Заранее благодарен.

ответ

1

Единственный сценарий, который я могу себе представить, - это когда вам нужно запускать сразу несколько сообщений, тогда асинхронный торнадо, очевидно, более выгоден, чем django (или любой другой синхронный веб-фреймворк), поскольку последнему придется запускать сообщение и ждать для ответа каждый раз.

+0

Я так думаю, но когда наш сервер приложений запускает сообщения для толкателя, ожидаемый ответ от толкателя - это «ОК, полученный», который должен быть предоставлен нашему серверу для каждого сообщения без каких-либо задержек. Я имею в виду: когда клиенты ждут нового сообщения в чате, я вижу преимущество наличия асинхронной системы и способ нажатия на сообщения, чтобы не блокировать сервер, пока нет ответа на доставку. но я не вижу нужды, когда вы ожидаете и мгновенный ответ с другой стороны! Вы думаете, что Торнадо мог бы справиться лучше в этой ситуации? Заранее большое спасибо! – diegopau

+0

Ну, теперь, подумав об этом лучше (и благодаря вашему ответу), ясно, что в любое время, когда вы тянете к внешней службе, вам нужно ожидать задержки, и было бы гораздо более эффективно обрабатывать другие запросы, в то время как толкатель посылает нам ответ для каждого из них. – diegopau

0

Связанный документ означает, что если вы используете оба Pusher и Tornado, вы должны выполнить эту дополнительную настройку, чтобы сделать Pusher хорошо работать с неблокирующей моделью Tornado. Рамки, использующие синхронный параллелизм, не нуждаются в дополнительной работе, поэтому им необязательно упоминаться в документах. Вы можете продолжать использовать Tornado или Django (или Flask и т. Д.) В зависимости от ваших предпочтений и потребностей вашего приложения.