如何在 Tornado 中通过 websocket 传输 .png 或 .jpg 文件
Posted
技术标签:
【中文标题】如何在 Tornado 中通过 websocket 传输 .png 或 .jpg 文件【英文标题】:How to transfer .png or .jpg file over websocket in Tornado 【发布时间】:2015-10-06 04:37:30 【问题描述】:我是 Tornado 和一般网络服务的新手。 在我的应用程序中,我在服务器端有 Qt/c++ 客户端和 python Tornado。 Qt 客户端以文本消息的形式发送命令。在服务器端,'on_message' 方法接收消息,对其进行解析并调用相关脚本以生成 .png 图像。现在,我想将此图像连同图像的简短描述一起发送回客户。如何在服务器端和客户端执行此操作?指向任何在线示例的指针也会有所帮助。 谢谢。
【问题讨论】:
谁能帮帮我。这有点急。我试图在网上找到一个例子,但找不到相关的例子。 【参考方案1】:您可以将图像编码为 Base64 格式并以 JSON 格式发送消息,连同描述。
在你的服务器上
import base64
ws_client.write_message(
"img": base64.b64encode(img_data),
"desc": img_description,
)
在您的客户端上,您解析 JSON 字符串并解码 Base64 编码的图像以获取数据。
【讨论】:
感谢您的回复。我在客户端有 Qt/C++。如何在客户端解码? 我对Qt或者C++不是很熟悉,但是Qt好像有一个JSON parser,你可以得到一个Base64解码函数here。以上是关于如何在 Tornado 中通过 websocket 传输 .png 或 .jpg 文件的主要内容,如果未能解决你的问题,请参考以下文章
我将如何在 Javascript 中通过 WebSocket 发送和接收数据包
如何在 Express 应用程序中通过 SSL 获取 websocket?
如何在 ruby on rails 中通过 websocket 发送保持活动的数据包
在 Angularjs 中通过 WebSocket STOMP