gpt4 book ai didi

silverlight - Silverlight和推送通知

转载 作者:行者123 更新时间:2023-12-03 12:14:25 24 4
gpt4 key购买 nike

我正在为远程仪器创建一个Silverlight 2用户界面。在不同地点有两个并发用户正在与仪器交互(仪器的运算符(operator)和远程科学家),并且有任意数量的观察者用户不与仪器交互,而只是在观看。但是,每当两个 Activity 用户之一进行更改时,这些更改必须立即反射(reflect)在所有用户的UI中,例如平移或缩放图像或注释或选择图像的一部分,将项目添加到列表框中显示的集合中。在客户端中,我使用可观察的集合,这些集合可以轻松反射(reflect)该用户所做的更改,但是很难看到其他用户所做的更改。我可以轮询每个客户端的更改,但是像推送通知这样的方法会更好。我已经在Google上广泛搜索了示例,但没有找到我需要的任何东西。 Silverlight与WCF服务进行交互时,会遇到各种各样的安全问题,这意味着许多潜在的示例都不起作用。我基本上没有时间在这个项目上,需要快速的帮助。有没有人建议一个合适的简单示例说明如何做到这一点?我是一位经验丰富的开发人员,但必须自学Silverlight和WCF服务,因此我所在的地区没有人对此有任何了解。即使我已经做了大量的ASP.NET工作,但我不是Web / Javascript专家。谢谢。

最佳答案

Silverlight 2使用新的WCF PollingDuplexHttpBinding支持来支持推送通知。 Silverlight SDK(one for Silverlight app one for WCF server)安装了两个程序集。

我有一个few blog posts and a full sample application,它演示了如何从控制台应用服务器“推送”库存更新,该服务器将WCF服务自动托管到连接的客户端。它还显示了每个客户端如何针对股票添加便笺,以及如何将这些便笺同步(从服务器推送)到所有其他连接的客户端。

该示例的最新版本(第4部分)展示了如何使用两个服务器端点在Silverlight和WPF客户端之间同步推送的更新,如下所示:

using System;
using System.ServiceModel;
using System.ServiceModel.Description;

namespace StockServer
{
public class StockServiceHost : ServiceHost
{
public StockServiceHost(object singletonInstance, params Uri[] baseAddresses)
: base(singletonInstance, baseAddresses)
{
}

public StockServiceHost(Type serviceType, params Uri[] baseAddresses)
: base(serviceType, baseAddresses)
{
}

protected override void InitializeRuntime()
{
this.AddServiceEndpoint(
typeof(IPolicyProvider),
new WebHttpBinding(),
new Uri("http://localhost:10201/")).Behaviors.Add(new WebHttpBehavior());

this.AddServiceEndpoint(
typeof(IStockService),
new PollingDuplexHttpBinding(),
new Uri("http://localhost:10201/SilverlightStockService"));

this.AddServiceEndpoint(
typeof(IStockService),
new WSDualHttpBinding(WSDualHttpSecurityMode.None),
new Uri("http://localhost:10201/WpfStockService"));

base.InitializeRuntime();
}
}
}

WPF客户端连接到WSDualHttpBinding端点,Silverlight客户端连接到同一WCF服务的PollingDuplexHttpBinding端点。该应用程序还显示了如何处理Silverlight客户端访问策略要求。

客户端(Silverlight或WPF)可以在其UI中针对库存添加注释,这些注释会传播回服务器以推送到所有其他客户端。这说明了双向通信,并有望执行应用程序所需的所有必要通信。

您可以看到 demo application running here的屏幕截图。

关于silverlight - Silverlight和推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com