python - 增加 Tornado 中 BaseIOStream 的 max_buffer_size 限制
问题描述
Tornado websocket 服务器用于与可能发送大量有效负载的客户端进行双向通信。我已经使用以下方法增加了套接字消息的大小:
tornado.web.Application(tuples, websocket_max_message_size = 256 * 1024 * 1024),
根据:答案。但是,如果消息超过 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
子类。
推荐阅读
- elasticsearch - 系统过载时丢弃 Elasticsearch 请求
- bash - 从表中选择与模式匹配的行
- ios - 以 swift 事件序列在 tabController 下的 viewControllers 之间传递数据
- mysql - 如何实现一个需要一对一连接然后多对多的sql查询?
- hibernate - springboot 发布连接
- python - “通过分配”是什么意思?
- python - Pyenv 用作 sudo 时不显示所有版本
- python - Django Inline 表单验证忽略了部分填充的表单
- python - 正则表达式与变量的精确模式匹配
- python - 如何使用字符串列表对 Pandas Dataframe 中的列进行排序