Silverlight(23) - 2.0通信之调用WCF的双向通信(Duplex Service)
2008-12-18 11:54:25 来源:WEB开发网PollingDuplexServiceHostFactory.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Activation;
/**//* 以下部分摘自文档 */
// 服务 svc 文件的 Factory 要指定为此类
public class PollingDuplexServiceHostFactory : ServiceHostFactoryBase
{
public override ServiceHostBase CreateServiceHost(string constructorString,
Uri[] baseAddresses)
{
return new PollingDuplexSimplexServiceHost(baseAddresses);
}
}
class PollingDuplexSimplexServiceHost : ServiceHost
{
public PollingDuplexSimplexServiceHost(params System.Uri[] addresses)
{
base.InitializeDescription(typeof(DuplexService), new UriSchemeKeyedCollection(addresses));
}
protected override void InitializeRuntime()
{
// 配置 WCF 服务与 Silverlight 客户端之间的 Duplex 通信
// Silverlight 客户端定期轮询网络层上的服务,并检查回调信道上由服务端发送的所有新的消息
// 该服务会将回调信道上的由服务端发送的所有消息进行排队,并在客户端轮询服务时将这些消息传递到该客户端
PollingDuplexBindingElement pdbe = new PollingDuplexBindingElement()
{
// ServerPollTimeout - 轮询超时时间
// InactivityTimeout - 服务端与客户端在此超时时间内无任何消息交换的情况下,服务会关闭其会话
ServerPollTimeout = TimeSpan.FromSeconds(3),
InactivityTimeout = TimeSpan.FromMinutes(1)
};
// 为服务契约(service contract)添加一个终结点(endpoint)
// Duplex 服务仅支持 Soap11
this.AddServiceEndpoint(
typeof(IDuplexService),
new CustomBinding(
pdbe,
new TextMessageEncodingBindingElement(
MessageVersion.Soap11,
System.Text.Encoding.UTF8),
new HttpTransportBindingElement()),
"");
base.InitializeRuntime();
}
}
Tags:Silverlight 通信 调用
编辑录入:爽爽 [复制链接] [打 印]- ››Silverlight for Windows Phone 7开发系列(1):...
- ››Silverlight for Windows Phone 7开发系列(2):...
- ››Silverlight for Windows Phone 7开发系列(3):...
- ››Silverlight for Windows Phone 7开发系列(4):...
- ››Silverlight for Symbian
- ››调用android系统自带功能
- ››调用HHA_CompileHHP编译chm工程
- ››调用所有的 android activity 的实现
- ››调用 Android 内置图片的方法
- ››调用winpcap驱动写arp多功能工具
- ››调用默认的电子邮件程序发送EMail
- ››Silverlight3系列(四)数据绑定 Data Binding 1
赞助商链接