2015-10-06 60 views
0

我是一般的Tornado和Web服務的新手。 在我的應用程序中,我在服務器端使用了Qt/C++客戶端和python Tornado。 Qt客戶端以文本消息的形式發送命令。在服務器端,'on_message'方法接收到消息,解析消息並調用相關腳本生成.png圖像。現在,我想將這個圖像發送回客戶端,並附上圖片的簡短描述。我如何在服務器端和客戶端執行此操作?指向任何在線示例也是有幫助的。 謝謝。如何通過websocket在Tornado上傳輸.png或.jpg文件

+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解析器](http://doc.qt.io/qt-5/qjsondocument.html#fromJson),你可以得到一個Base64解碼函數[這裏](http://stackoverflow.com/questions/180947/base64-decode-snippet-in-c)。 –