Я новичок в Tornado и веб-сервисах в целом. В моем приложении у меня есть клиент Qt/C++ и pornon Tornado на стороне сервера. Клиент Qt отправляет команды в виде текстовых сообщений. На стороне сервера метод on_message получает сообщение, анализирует его и вызывает соответствующий скрипт для генерации .png изображения. Теперь я хочу отправить это изображение клиенту вместе с кратким описанием изображения. Как это сделать на сервере и на стороне клиента? Указатель на любой онлайн-пример также будет полезен. Спасибо.Как передать .png или .jpg файл через websocket в Tornado
ответ
Вы можете кодировать изображение в формате Base64 и отправлять сообщение в формате JSON вместе с описанием.
На YOUT сервере вы
import base64
ws_client.write_message({
"img": base64.b64encode(img_data),
"desc": img_description,
})
И на вашем клиенте, вы разобрать строку JSON и декодировать в формате base64 изображение, чтобы получить данные.
Спасибо за ответ. У меня Qt/C++ на стороне клиента. Как это сделать на стороне клиента? – gaj
Я не знаком с 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). –
Может кто-нибудь помочь мне. Это немного срочно. Я попытался найти пример в Интернете, но не смог найти соответствующий пример. – gaj
кто-нибудь пожалуйста? – gaj