我正在尝试使用 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 字节 - 这是我从中得到的数字线鲨)。我希望服务器在准备好后立即返回数据,或者至少将缓冲区设置为非常小的值,例如 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>