Windows Metro 应用程序中没有 P2P 功能?

6
在BUILD大会上的“A .NET developer's view of Windows 8 app development”演讲中,讲师提到Metro档案只公开了客户端WCF功能,我们无法创建服务器。(http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-930C?format=progressive @ ~34:00)
这是否意味着Metro应用程序不能直接进行点对点通信,而任何两个用户之间交换的数据都必须通过非Metro样式的应用程序实际传输?

2
Metro不是一种UI范例吗?或者你想要编写Metro风格的Windows服务或Web服务?! - Davide Piras
什么?Metro 不仅仅是改变用户界面。例如,这些讲座让我有了轻量级 P2P 游戏完全可以作为 Metro 应用程序的印象,但现在我不确定它是否真的可以实现。 - gerkberk
你可以做到这一切,但是要将应用程序分层,使服务位于服务层而不是用户界面中。 - Davide Piras
如果在 Metro profile 中没有包含服务器端 WCF 功能,则 Metro 风格的应用程序(至少是可以在市场上销售的应用程序)无论如何都不能使用它们,对吗? - gerkberk
2个回答

4

访问套接字由"Internet (Client & Server)"权限控制,如果您的应用程序启用了这个权限,那么您应该能够在互联网上发送和接收数据。


好的,了解了Windows.Networking.Sockets。这意味着我们将能够使用普通套接字创建服务器,只是不能使用WCF来实现? - gerkberk
1
“被遗漏”的特性是什么?一般来说,那些在 .Net 4.5 核心配置文件中没有的特性是那些多余的或无法在 Metro 应用程序中运行的特性。 - Larry Osterman
1
@Larry 我认为所讨论的功能是WCF服务器类。如果有服务器套接字,但没有更高级别的服务器框架,那就很奇怪了。 - Pavel Minaev
请问您能否提供一个网址,详细说明如何启用功能? - expert
开发中心提供了有关网络和示例的信息。http://msdn.microsoft.com/en-us/library/windows/apps/br211370.aspx 我想在客户端之间提供一些基本的游戏通信,但我还没有弄清楚是否需要云服务器才能实现。也许需要用于识别要连接的客户端,但希望不会强制我通过它发送所有通信。 - kamranicus
我还应该提到,如果你正在开发一个基于JS的应用程序,你可以使用众多WebSocket包装库之一,比如socket.io。 - kamranicus

0

由于 Metro 风格应用程序无法在后台运行,并且设计为零散使用,因此启用 P2P 功能几乎没有意义。


有很多应用类型可以让两个用户进行通信,而不需要通过外部服务器来路由数据包。P2P 可以降低客户端的延迟和服务器成本。 - gerkberk
@gerkberk 我的意思是类似于BitTorrent的P2P。也许它并不太适合这个问题。 - Zhipei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接