我如何启用gzip压缩WCF websocket双工netttpsbinding



我只是想启用gzip压缩到以下绑定。

这是我目前在我的配置文件中的内容。

  <netHttpsBinding>
    <binding name="MutualCertificateBinding" maxReceivedMessageSize="9223372036854775807" receiveTimeout="00:20:00" sendTimeout="00:20:00" transferMode="Streamed" messageEncoding="Binary">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" />
      </security>
      <webSocketSettings transportUsage="Always" />
    </binding>
  </netHttpsBinding>

根据MSDN, tcp, http和https在WCF中都能够压缩到4.5,我在4.5.2。

请记住,我实际上使用的是带有回调合约的WCF合约,因此需要双工。

我很高兴用自定义绑定代替我的绑定,因为我控制着两边,它们都是。net,但我一直无法弄清楚如何创建任何支持websockets的自定义绑定。

好的,我一直在尝试不同的东西,这是我最终想出的,它的工作。:)

    <binding name="GZipMutualCertificateBinding" receiveTimeout="00:20:00" sendTimeout="00:20:00">
      <binaryMessageEncoding compressionFormat="GZip" />
      <httpsTransport maxReceivedMessageSize="9223372036854775807" requireClientCertificate="true" transferMode="Streamed">
        <webSocketSettings transportUsage="Always" />
      </httpsTransport>
    </binding>

这是通过试验和错误发现的,如果你看到任何看起来不合适的地方,请告诉我。谢谢。

最新更新