2010-05-19 43 views
1

我想将xml序列化的对象从服务器传递到客户端,另一种方式是周围的。现在,使用WCF从移动客户端(紧凑框架)调用方法(可能很容易),但有没有办法让服务器可以调用客户端的方法或其他方式从客户端获取数据?我知道在紧凑框架中不提供回调协议,因为您可以在这里看到:http://blogs.msdn.com/andrewarnottms/archive/2007/09/13/calling-wcf-services-from-netcf-3-5-using-compact-wcf-and-netcfsvcutil-exe.aspxWCF - Compact Framework - 从手机客户端获取数据

本来我想到的是套接字编程和我自己开发的,然后有人在这里提到了WCF。但似乎WCF只能在非移动环境中工作,因为我需要回调。

任何人都可以帮助我吗?是否可以开发与桌面服务器和使用WCF的多个移动客户端的双向通信,还是我将不得不进行套接字编程?

感谢您的任何建议或任何形式的帮助!

+0

你可能想给我们一些关于你硬件的更多细节。我没有看到windows-mobile标签,这使我相信您使用的是通用CE设备,并且可能有能力更改操作系统。此信息可能会影响人们的答案。 – ctacke 2010-05-19 21:00:08

回答

0

即使你使用套接字,由于路由,载波过滤和NAT转换(你没有提到你的实际网络拓扑结构),它可能有点困难。这就是大多数移动应用程序必须轮询服务器的原因,即使它是“推送”范例(例如Exchange的推送机制,客户端实际轮询)。

一般来说,除非你像本地无线网络那样拥有坚实的,可路由的,未经过滤的网络访问,否则客户端应定期调用服务器并询问服务器是否有数据。如果确实如此,那么它会从服务器中提取数据。

编辑

现在我们知道一点关于你的topolgy从您的意见,我可以引导你多一点。不幸的是,微软并没有让Windwos CE设备轻松托管服务(WCF或其他)。理论上讲,所需的基础结构可以建立自己的WCF频道并实际提供服务,但这不是一项简单的任务。我很久以前就对它进行了调查,并认为这是几个月的工作,而这可能是在雷蒙德的某个人的协助下完成的,他们知道现有的Exchange渠道是如何工作的。

就我个人而言,我会选择使用our Padarn web server托管基于REST的Web服务,因为它很简单,现在已经为很多客户完成了。我意识到将Padarn作为一种解决方案是有点自私的,但是我在Padarn中实现了自定义IHttpHandlers的全部原因是因为我找不到任何其他东西,它们确实为CE设备提供了自己的东西服务,这是我们经常需要为其提供解决方案的问题。

其他选项可能是专有的套接字解​​决方案,在设备上托管FTP服务器,使用MS(提供异议,IMO)MS提供的带有ISAPI,Telnet或其他协议的HTTP服务器。他们都似乎是黑客,很多工作或两者兼而有之。

+0

嗯,实际上我正在本地无线网络中工作。另外,我希望服务器从客户端获取数据,而不是周围的其他方式! – jagse 2010-05-19 20:33:33

+0

据我所知,你想从设备拉。在许多应用中(例如蜂窝网络 - 您没有指定),这是不切实际的或不可能的。 – ctacke 2010-05-19 20:50:22

1

at ctacke

谢谢你的帮忙。我真的偶然发现了你的Padran网络服务器。还真没有检查过它。但我肯定会在稍后做这件事。无论如何,套接字解决方案目前似乎并不糟糕。与此同时,我认为将数据从多个客户端发送到'套接字服务器'是相当容易的。如果我能以某种方式管理这些连接,我可以将数据发送回客户端。然后,如果协议处理我通过网络发送的数据或命令,我将不得不想出一些类似的协议......我想最难的部分是组成这样的协议,因为我对这个atm没有任何线索...