如何在WCF websocket双工nethttpsbinding上启用gzip压缩

如何在WCF websocket双工nethttpsbinding上启用gzip压缩,wcf,websocket,.net-4.5,Wcf,Websocket,.net 4.5,我只想对以下绑定启用gzip压缩 以下是我当前配置文件中的内容 <netHttpsBinding> <binding name="MutualCertificateBinding" maxReceivedMessageSize="9223372036854775807" receiveTimeout="00:20:00" sendTimeout="00:20:00" transferMode="Streamed" messageEncoding="Binary"&g

我只想对以下绑定启用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>
WCF中的tcp、http和https从4.5开始都可以进行压缩,我现在使用的是4.5.2

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

我很乐意用自定义绑定替换我的绑定,因为我控制了两个方面,它们都是.net,但我一直无法弄清楚如何创建任何支持WebSocket的自定义绑定


任何帮助都将不胜感激,谢谢。

好吧,我一直在尝试很多不同的东西,下面是我最终想到的,它正在发挥作用

    <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>
这是通过反复试验发现的,如果您发现任何不合适的地方,请告诉我。谢谢