增加Tornado中BaseIOStream的max_buffer_size限制

问题描述 投票:1回答:1

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

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

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

已尝试:我相信我已经在BaseIoStream中将max_buffer_size设置为100MiB值时跟踪了该异常。我如何也可以增加该缓冲区的大小(或其他任何方式,以便我可以接收> 100MiB的消息)?

python websocket tornado large-files
1个回答
1
投票

您可以像这样从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子类。

© www.soinside.com 2019 - 2024. All rights reserved.