2015-07-29 2 views
0

Я строю сервер на базе Tornado, который в основном позволяет пользователю загружать изображение, выполняет некоторую обработку на сервере и возвращает некоторые обновления во время и после обработки.Tornado Двунаправленная связь без веб-сайтов

Я реализовал базовый сервер с помощью Handlers, который работает хорошо. Проблема заключается в том, что интерфейс обработчика не позволяет мне общаться с клиентом, но только для повторной обработки всей страницы.

Я рассмотрел использование WebSockets, но из того, что я вижу, они не должны использоваться для загрузки изображений, поэтому он как бы убивает эту опцию.

Есть ли другой способ связи с конкретным клиентом из обработчика (т. Е. Отображать только часть страницы, запускать какое-то событие js и т. Д.).

Спасибо :)

ответ

0

Вы используете POST и GET методы в обработчиках?

Если вы используете метод GET для получения изображения со своего клиента, вы можете связываться с клиентом, возвращая данные с помощью метода self.write (json_data). (http://tornado.readthedocs.org/en/latest/guide/structure.html) Однако, как только метод GET возвращает запрос, считается завершенным, поэтому вы не сможете отправлять несколько обновлений.

Кроме того, вы также можете настроить клиентскую сторону? Я предполагаю, что вы используете метод JSON GET для вызова сервера торнадо, и в этом случае вы можете просто связать определенные ответы с различными js-функциями в клиентском коде.

+0

Привет, Ashely, я использую метод POST из-за того, что я загружаю изображение при запуске обработчика. Может ли self.write использоваться для запуска js-функций в методе POST? – eladrich

+0

Да, если вы перейдете сюда: (http://api.jquery.com/jquery.post/), сервер может возвращать данные в переменной «success». –

+0

Я действительно использую возвращаемые данные, то, что он позволяет мне отправлять только один ответ, и то, что я ищу, является фактическим сообщением. – eladrich

Смежные вопросы