在前两讲《SourceCode ,BTW,这个压缩Sink相对比较稳定,大家可以在各自的项目中放心使用。:-)



详细设计:
提供一个Assembly: CompressionSink.dll
它包括:
    客户端:
        CompressionSink.CompressionClientSinkProvider类CompressionSink.CompressionClientSink类
    服务端:
        CompressionSink.CompressionServerSinkProvider类CompressionSink.CompressionServerSink类
    压缩类:CompressionHelper
    压缩内核:NZipLib库。

客户端的配置文件 :

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <system.runtime.remoting>

        <application>

            <channels>

                <channel ref="http">

                    <clientProviders>

                        <formatter ref="soap" />

                        <provider type="CompressionSink.CompressionClientSinkProvider, CompressionSink" />

                    </clientProviders>

                </channel>

            </channels>

             <client>

                 <wellknown type="Service.SomeSAO, Service"  url="http://localhost:5555/SomeSAO.soap" />

             </client>

        </application>

    </system.runtime.remoting>

</configuration>

服务端的配置文件 : 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

    <system.runtime.remoting>

        <application>

            <channels>

                <channel ref="http" port="5555">

                    <serverProviders>

                        <provider type="CompressionSink.CompressionServerSinkProvider, CompressionSink" />

                        <formatter ref="soap"/>

                    </serverProviders>

                </channel>

            </channels>

            <service>

                <wellknown mode="Singleton"  type="Service.SomeSAO, Service"   objectUri="SomeSAO.soap" />

            </service>

        </application>

    </system.runtime.remoting>

</configuration>

 

实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)public class CompressionClientSinkProvider: IClientChannelSinkProvider
    }


 


 1实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)public class CompressionClientSink: BaseChannelSinkWithProperties, 
 2实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)                                        IClientChannelSink
 3    }

 

 1实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)public class CompressionServerSinkProvider: IServerChannelSinkProvider
 2    }

 

实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)using System;
实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
using System.Runtime.Remoting.Channels;
实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
using System.Runtime.Remoting.Messaging;
实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
using System.IO;
实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
namespace CompressionSink

 

 1实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)public class CompressionHelper 
 2    }


BTW,这个Sink还可以扩展,比如判断需要压缩Stream的大小,如果很大,就压缩,否则不压缩(可以在responseHeaders和requestHeaders添加是否 已经压缩的标记)

相关文章:

  • 2021-09-03
  • 2021-10-26
  • 2021-11-28
  • 2021-11-22
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-05-17
  • 2022-12-23
  • 2022-01-17
  • 2021-12-12
  • 2021-11-21
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案