如何在 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

如何在 Tornado 中创建多个 websocket 聊天?

Django、websockets、Tornado,如何让它们通信?