websocket可以支持gzip压缩吗?

websocket可以支持gzip压缩吗?,websocket,gzip,Websocket,Gzip,WebSocket握手成功后,我们可以使用gzip压缩吗 以下是我的测试: 我使用autobahn lib构建服务器,然后作为: HTTP/1.1 101交换协议内容编码:gzip连接:升级服务器:AutobahnPython/?。?。?升级: WebSocket Sec WebSocket Accept:RIR8KmljoV8Cv9mdiLY7GM2nYMc= 然后我的服务器使用gzip压缩 chrome浏览器得到了结果,但它告诉我“无法将文本框解码为UTF-8” IETF Websocket

WebSocket握手成功后,我们可以使用gzip压缩吗

以下是我的测试:

  • 我使用autobahn lib构建服务器,然后作为:
    HTTP/1.1 101交换协议内容编码:gzip连接:升级服务器:AutobahnPython/?。?。?升级:
    WebSocket Sec WebSocket Accept:RIR8KmljoV8Cv9mdiLY7GM2nYMc=
  • 然后我的服务器使用gzip压缩
  • chrome浏览器得到了结果,但它告诉我“无法将文本框解码为UTF-8”
  • IETF Websocket()工作组正在进行一项研究。我建议按照他们的邮件列表查找最新信息。我也建议退房



    2017年更新:该扩展现已可用一段时间,请参见此处:

    WebSocket压缩在某些浏览器中默认启用(在撰写本文时,例如在Chrome中,但在Firefox中未启用)。客户端必须为此包含“Sec WebSocket Extensions:permessage deflate”标题。如果服务器使用相同的扩展名进行响应,则WebSocket通信将按帧进行压缩。据我所知,没有浏览器API来启用/禁用扩展

    关于这个主题的一篇好文章是:

    是的,它可以

    ”https://github.com/crossbario/autobahn-python/blob/master/examples/twisted/websocket/echo_compressed/server_advanced.py"
    从twisted.internet导入
    从twisted.web.server导入站点
    从twisted.web.static导入文件
    从autobahn.twisted.websocket导入WebSocketServerFactory\
    倾听
    从autobahn.websocket.compress导入*
    def接受(报价):
    对于报价中的报价:
    return permessagedeflateofferacept(offer)
    调试=真
    factory=WebSocketServerFactory(u“ws://127.0.0.1:9000”,debug=debug,debugcodepath=debug)
    setProtocolOptions(perMessageCompressionAccept=accept)
    李斯特(工厂)
    webdir=文件(“.”)
    web=站点(webdir)
    reactor.listenTCP(8080,web)
    反应堆运行()
    

    更多信息:。

    您能告诉我如何使用吗?我确实查过RFC6455,但我不知道如何使用…谢谢Dreen,太好了。我将研究压缩扩展。还有其他朋友在研究它吗?@littlesun:据我所知,这个扩展目前还不可用,因为它仍在开发中(主要证据是他们刚刚将它从“每帧”设备更改为“每消息”设备)。Javascript本身并不真正支持任何形式的压缩/解压缩。恐怕目前唯一的解决方案是等待IETF人员完成规范,等待浏览器供应商实施规范。。。这应该不会太长,我想这可能会在几个月内发生。这不再是一个草案。有关建议的标准,请参阅。AutobahnPython(当前)不支持每帧压缩扩展。在任何情况下,支持的信令都是通过特定于WebSocket的HTTP头来完成的,而不是“内容编码”。谢谢提醒。无论如何,在使用websocket时,有一种简单的方法可以支持gzip压缩作为http方法吗?没有。对于在websocket上使用压缩,需要实现扩展,这需要大量的代码“深入到引擎盖下”。压缩工作顺利吗?我自己对此很感兴趣。AutobahnPython现在支持“permessage deflate”。你可以用Chrome Canary(目前唯一实现它的浏览器)来测试它。您将需要AutobahnPython GitHub上的permessage_deflate分支,或者等待0.6.0-将很快发布。