如何为WCF编写基于套接字的自定义传输

时间:2008-12-19 14:47:19

标签: wcf sockets

我有一个移动平台,我正在尝试编写一些通信代码。

该平台提供基于标准套接字功能的专有通信机制。基本上,平台的套接字API看起来与标准的Windows套接字API完全相同,除了每个函数都有前缀。

我想使用WCF从我的消费应用程序中抽象出套接字API的复杂性,但我很难找到足以描述需要编码的所有部分的资源。

任何人都可以推荐一个好的起点,或者说明为WCF编写基于Socket的自定义传输所需的内容吗?理想情况下,我希望能够在此传输机制上使用HttpBinding。

谢谢!

1 个答案:

答案 0 :(得分:10)

我整理了一些resources的列表,用于编写可能有用的WCF传输通道。不幸的是,并非所有的链接都仍处于活动状态,但大多数链接都存在并且有一些有用的东西。

我还把一些short introduction放在一起如何组合在一起,这可能会有所帮助。

我不太明白你的问题:你提到你想在你的交通工具上运行HttpBinding。您是说要在自定义套接字API之上使用WCF http传输通道而不是常规Windows套接字API吗?

如果是这样,那么不,这将因各种原因而无效。其中之一是绑定和通道实际上不是直接连接在一起,而是绑定定义(即包含在其中的绑定元素)控制如何在运行时为您的服务/客户端创建通道堆栈。

基本上,在编写自定义传输通道时,您将创建自己的自定义TransportBindingElement派生类,您可以在自定义绑定中使用它来使用您自己的传输通道而不是默认传输通道之一(如HttpTransport)。但是,请注意,传输通道无论如何都是通道堆栈的底部(即它下面没有任何内容),因此无论如何都无法将HttpTransport层叠在自定义传输之上(即使API限制不存在)

换句话说,如果您想说HTTP,则需要将HTTP内容烘焙到自定义渠道实施中。但是,如果您公开正确的通道形状,则没有什么可以阻止您在自己的通道上使用其余的默认basic / ws http绑定。