【发布时间】:2019-05-22 17:18:55
【问题描述】:
tornado目前有一个功能:
WebSocketHandler.get_compression_options()
目前人们是否正在为 websockets 使用一种当前领先的压缩方法? Tornado 将来会采用这些压缩方法吗?客户端将如何解压收到的消息?
【问题讨论】:
tornado目前有一个功能:
WebSocketHandler.get_compression_options()
目前人们是否正在为 websockets 使用一种当前领先的压缩方法? Tornado 将来会采用这些压缩方法吗?客户端将如何解压收到的消息?
【问题讨论】:
Tornado 支持根据RFC 7692 的 websocket 压缩。要启用压缩,请从 get_compression_options() 返回一个空字典(而不是 None,这是默认设置并禁用压缩)。如果在连接的两侧都启用了压缩,它将自动使用;这对应用程序是透明的。
将来,可能会返回此字典中的其他选项(例如compression_level 参数),以在压缩量和 CPU/内存使用量之间进行权衡,尽管目前没有实现此类选项。
【讨论】:
4.0 支持压缩
WebSocketHandler.get_compression_options()
示例代码:
class ChatSocketHandler(tornado.websocket.WebSocketHandler):
def get_compression_options(self):
# Non-None enables compression with default options.
return {'compression_level':5,'mem_level':5}
【讨论】: