2015-10-06 2 views
0

Я новичок в Tornado и веб-сервисах в целом. В моем приложении у меня есть клиент Qt/C++ и pornon Tornado на стороне сервера. Клиент Qt отправляет команды в виде текстовых сообщений. На стороне сервера метод on_message получает сообщение, анализирует его и вызывает соответствующий скрипт для генерации .png изображения. Теперь я хочу отправить это изображение клиенту вместе с кратким описанием изображения. Как это сделать на сервере и на стороне клиента? Указатель на любой онлайн-пример также будет полезен. Спасибо.Как передать .png или .jpg файл через websocket в Tornado

+0

Может кто-нибудь помочь мне. Это немного срочно. Я попытался найти пример в Интернете, но не смог найти соответствующий пример. – gaj

+0

кто-нибудь пожалуйста? – gaj

ответ

2

Вы можете кодировать изображение в формате Base64 и отправлять сообщение в формате JSON вместе с описанием.

На YOUT сервере вы

import base64 

ws_client.write_message({ 
    "img": base64.b64encode(img_data), 
    "desc": img_description, 
}) 

И на вашем клиенте, вы разобрать строку JSON и декодировать в формате base64 изображение, чтобы получить данные.

+0

Спасибо за ответ. У меня Qt/C++ на стороне клиента. Как это сделать на стороне клиента? – gaj

+0

Я не знаком с Qt или C++, но, похоже, Qt имеет [JSON parser] (http://doc.qt.io/qt-5/qjsondocument.html#fromJson), и вы можете получить функцию декодирования Base64 [здесь] (http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c). –