python - 增加 Tornado 中 BaseIOStream 的 max_buffer_size 限制

标签 python websocket tornado large-files

Tornado websocket 服务器用于与可能发送大量有效负载的客户端进行双向通信。我已经使用以下方法增加了套接字消息的大小:

tornado.web.Application(tuples, websocket_max_message_size = 256 * 1024 * 1024), 

根据:answer 。但是,如果消息超过 100MiB(超出读取缓冲区大小),我会收到异常。

尝试过:
我相信我已经在 BaseIoStream 中追踪到了该异常其中 max_buffer_size 设置为 100MiB 值。我怎样才能增加缓冲区大小(或其他任何东西,这样我就可以接收> 100MiB的消息)?

最佳答案

您可以从 WebSocketHandler 子类增加 IOStream 的缓冲区限制,如下所示:

class YourWebSocketHandler(websocket.WebSocketHandler):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.request.connection.stream.max_buffer_size = 256 * 1024 * 1024

这也适用于 RequestHandler 子类。

关于python - 增加 Tornado 中 BaseIOStream 的 max_buffer_size 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59003994/

相关文章:

python - 数据导入 uploadData API - 通过 GCS 和 App Engine 应用程序实现自动化

javascript - 如何防止值错误 : too many packets in payload in flask socketio

python - 如何为 Tornado HTTP 服务器创建虚拟主机

python - 为什么在 Tornado 服务器 Post 方法中创建线程会出现运行时错误?

javascript - close 似乎不适用于 WebSocket

python - 我的 python Tornado 代码不起作用......为什么

python - Matplotlib:以图像作为注释的 3D 散点图

python - Python 中 Tensorflow 的角度比较损失函数

python - 使用 openpyxl 或 xl* 或 xlsxwriter 在工作簿中移动工作表?

html5 WebSocket