WCF - StreamedResponse - 最小延迟

时间:2013-01-14 14:59:05

标签: c# .net wcf silverlight streaming

我正在尝试使用SilverLight 5应用程序和.NET 4服务器之间的WCF流传输实时数据。我需要的是服务器和客户端之间的最小延迟。但是,看起来WCF在发送之前正在缓冲数据。我正在关注此网站的示例:http://blogs.msdn.com/b/carlosfigueira/archive/2010/07/08/using-transfermode-streamedresponse-to-download-files-in-silverlight-4.aspx。我已经实现了自定义流,我看到我得到了在一秒钟内读取10个小块(少于400个字节)但在线路上服务器每10秒返回一次数据(它返回32776个字节 - 这是我从Wireshark获得的数字)。我希望服务器在准备就绪后立即返回数据,或者至少将缓冲区设置为非常小的值,例如512字节。

我尝试更改客户端和服务器配置,但没有运气。我的配置如下所示:

客户端

<client>
    <endpoint address=""
          binding="customBinding" bindingConfiguration="CustomBinding_IWcfDownloadService_StreamedResponse"
          contract="IWcfDownloadService" name="CustomBinding_IWcfDownloadService_StreamedResponse" />
</client>

<bindings>
  <customBinding>
    <binding name="CustomBinding_IWcfDownloadService_StreamedResponse">
      <binaryMessageEncoding />
      <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" transferMode="StreamedResponse" />
    </binding>
  </customBinding>
</bindings>

服务器

<services>
  <service name="WcfDownloadService">
    <endpoint address="" binding="customBinding" bindingConfiguration="customBinding0" contract="IWcfDownloadService" />        
  </service>
</service>

<bindings>
  <customBinding>
    <binding name="customBinding0">
      <binaryMessageEncoding />
      <httpTransport transferMode="StreamedResponse" />          
    </binding>
  </customBinding>
</bindings>

0 个答案:

没有答案