我想将xml序列化对象从服务器传送到客户端,另一种方式是arround。现在(很可能)使用WCF从移动客户端(紧凑框架)调用方法很容易,但有没有办法使服务器可以调用客户端方法或其他方式从客户端提取数据?我知道回调契约在紧凑框架中不可用,你可以在这里看到:http://blogs.msdn.com/andrewarnottms/archive/2007/09/13/calling-wcf-services-from-netcf-3-5-using-compact-wcf-and-netcfsvcutil-exe.aspx
最初我想到了socket编程以及自己开发这个,然后有人在这里提到了WCF。但似乎WCF只能在非移动环境中工作,因为我需要回调。
任何人都可以帮我这个吗?是否可以使用WCF与桌面服务器和多个移动客户端进行双向通信,还是必须进行套接字编程?
感谢您提供任何建议或任何帮助!
答案 0 :(得分:1)
at ctacke
感谢您的帮助。我之前偶然发现了你的Padran网络服务器.Havent真的已经检查过了。但我肯定会在以后这样做。无论如何,套接字解决方案目前似乎并不那么糟糕。与此同时,我认为将数据从多个客户端发送到“套接字服务器”非常容易。如果我可以以某种方式管理这些连接,我可以将数据发送回客户端。然后我必须想出一些处理我通过网络发送的数据或命令的协议...我想最困难的部分是组成这样的协议,因为我对这个atm没有任何线索...
答案 1 :(得分:0)
即使你去套接字,由于路由,载波过滤和NAT转换(你没有提到你的实际网络拓扑是什么),它可能有点困难。这就是大多数移动应用程序必须轮询服务器的原因,即使它是一种“推送”范例(如Exchange的推送机制,客户端实际轮询)。
一般来说,除非您使用的本地无线网络具有可靠,可路由,未经过滤的网络访问,否则客户端应定期调用服务器并询问服务器是否有数据。如果是,则从服务器提取数据。
修改强>
现在我们从你的评论中了解了更多关于你的拓扑的信息,我可以引导你多一点。不幸的是,微软并没有让Windwos CE设备轻松托管服务(WCF或其他)。从理论上讲,构建自己的WCF通道并实际托管服务所需的infrstructure,但这不是一项简单的任务。我很久以前就对它进行了调查,并认为这是几个月的工作,而且在Redmond的某个人的协助下,他们知道现有的Exchange渠道是如何运作的。
我个人选择使用our Padarn web server来托管基于REST的Web服务,因为它很简单,现在已经为很多客户完成了。我意识到将Padarn作为解决方案提出来是有点自私的,但是我在Padarn中实现自定义IHttpHandlers的全部原因是因为我找不到其他任何真正为CE设备提供任何简单方法来托管它自己的东西服务,这是我们经常要为其提供解决方案的问题。
其他选项可能是专有的套接字解决方案,在设备上托管FTP服务器,使用(令人憎恶的,IMO)MS提供的HTTP服务器与ISAPI,Telnet或其他类似的东西。所有这些似乎都是黑客,大量工作或两者兼而有之。