Windows Phone 的通信

2013/12/5

适用于: Windows Phone 8 | Windows Phone OS 7.1

 

本主题介绍 Windows Phone 应用如何能够使用远程数据存储与其他应用进行通信。了解用于近场通信 (NFC)、IP 语音 (VoIP)、开放数据协议 (OData) 客户端和 Web 服务的套接字、蓝牙和邻近感应 API。本主题还介绍网络信息和数据感知 API。

本主题包含以下各节。

 

为了在整个网络中进行双向通信(例如通过聊天应用),Windows Phone OS 7.1 支持基于套接字的应用。使用套接字,客户端或服务器可以发起通信,并且一个终结点可以向另一个终结点独立发送消息。套接字应用使用 System.Net.Sockets API。有关更多信息,请参见 Windows Phone 套接字

蓝牙是一种无线通信技术,通过它,10 米范围以内的设备可以互相通信。通过使用此技术,设备可以进行无物理连接的通信。无线耳机、遥控玩具和多人游戏都是使用蓝牙技术的设备和应用程序示例。通过使用 Windows Phone 8 中引进的 API,您的应用能够通过蓝牙与其他应用或设备通信。有关更多信息,请参见 Windows Phone 8 的蓝牙

Windows Phone 8 支持使用近场通信 (NFC) 的邻近 通信。邻近感应指 Windows 运行时(支持近距离内设备之间的连接)中的类的集合。通过使用此 API,您的应用可以通过点击或通过浏览查找无线范围内运行您的应用(对等方应用)的其他设备来建立连接。例如,这其中的一个应用可能是多人游戏,其中的两个用户点击其手机共同建立一个共享游戏会话。要了解邻近感应 API,请参见 Windows Phone 8 的邻近感应

从 Windows Phone 8 开始,您可以开发用于 Windows Phone 的 IP 语音 (VoIP)。通过使用 Windows 音频会话 API (WASAPI) 子集,应用可以捕获并呈现音频流。Windows Phone VoIP 应用还可以流式传输基于视频的 VoIP 调用。有关更多信息,请参见 Windows Phone 8 的 VoIP 应用

通过 Windows Phone 8 中的数据感知功能,用户可以指定其数据计划的限制。数据感知将监视与用户指定的限制相关的数据使用。使用此信息,您的应用可以在用户接近其数据限制时通过减少数据使用,或在用户超过其数据限制时停止数据使用来帮助用户节省金钱。有关更多信息,请参见在 Windows Phone 8 中如何使用数据感测 API 调整数据用法

任何基于 Web 的应用的用户体验都高度依赖手机网络连接的质量和可用性。Microsoft.Phone.Net.NetworkInformation 命名空间提供了几个类,应用可以通过它们了解有关其所在手机的网络状态的更多信息。例如,您的应用可以检查是否启用了手机网络数据或 WLAN 连接。您还可以使用 API 设置手机网络或非手机网络的网络首选项。有关更多信息,请参见 Windows Phone 网络和网络接口信息

Internet 的成功在很大程度上归功于超文本传输协议 (HTTP)。HTTP 是一种相对简单的网络协议,几乎无所不在,Web 浏览器和 Web 服务客户端应用可以用它来与整个 Internet 内的服务器交换信息。HTTP 是构建大部分 Web 服务的基础。

Web 服务允许以编程方式访问 Internet 上的各种数据。数据服务是基于 HTTP 的 Web 服务,这种 Web 服务实现开放数据协议 (OData) 以将数据公开为资源,这些资源通过数据模型进行定义并通过统一资源标识符 (URI) 进行寻址。

Web 和数据服务都使用一种基于 XML 的开放式语言来描述其基于 Web 的 API。使用 Web 服务描述语言 (WSDL) 描述 Web 服务提供的服务。概念性架构定义语言 (CSDL) 描述数据服务提供的数据模型。有关更多信息,请参见 Web 服务描述语言 (WSDL)概念性架构定义文件格式

Web 服务

因为在 Internet 上发布的绝大多数 Web 服务都基于 HTTP,因此您可以使用 HttpWebRequestWebClient 类从 Windows Phone 应用访问 Web 服务。为了帮助减轻生成 Web 服务通常所需的其他代码的任务,可以使用服务模型代理生成工具 (SLsvcUtil.exe) 或 Visual Studio 的“添加服务引用”功能生成代理类。有关如何使用 WebClient 类访问 RSS 源的示例,请参见如何为 Windows Phone 创建基本的 RSS 读取器

根据 Web 服务 WSDL 文件,Web 服务代理类为 Web 服务实现序列化、请求和响应代码。您可以在 Windows Phone 应用中使用生成的代理类与相应的 Web 服务进行通信。

数据服务 (OData)

数据服务是基于 HTTP 的 Web 服务,该 Web 服务实现开放数据协议 (OData) 以将数据公开为资源,这些资源通过数据模型进行定义并通过 URI 进行寻址。这使您能够使用具象状态传输 (REST) 的语义(尤其是 GET、PUT、POST 和 DELETE 等标准 HTTP 谓词)访问和更改数据。

由于数据服务是基于 HTTP 的,因此您可以使用 HttpWebRequestWebClient 类从 Windows Phone 应用访问数据服务。为了帮助减轻生成数据服务所需其他代码的任务,您可以使用 WCF 数据服务客户端实用工具 DataSvcUtil.exe 或 Visual Studio 的“添加服务引用”功能生成一个基于数据服务 CSDL 文件的代理类。您可以在 Windows Phone 应用中使用生成的代理类与相应的数据服务进行通信。

说明注意:

通过 WCF 数据服务,可以在 .NET Framework 应用中从 Web 创建并使用开放数据协议 (OData) 服务。有关更多信息,请参见 WCF 数据服务开发人员中心

类和实用工具

以下列表包含可以直接用于发出 Web 请求的类以及一些实用工具,这些工具可用于生成经过优化以从 Windows Phone 应用发出特殊类型 Web 请求的其他类。

  • WebClient 类:提供将数据发送到基于 URI 的资源和从中接收数据的通用方法。

  • HttpWebRequest 类:提供 WebRequest 抽象类的 HTTP 特定的实现。

  • Silverlight 服务模型代理生成工具 (SLsvcUtil.exe):生成基于 Web 服务 WSDL 文件的代理类。

  • Visual Studio 的“添加服务引用”功能:生成基于 Web 服务 WSDL 文件或数据服务 CSDL 文件的代理类。

  • WCF 数据服务客户端实用工具 (DataSvcUtil.exe):生成基于数据服务 CSDL 文件的代理类。

下表显示哪个类可以用于各种类型的基于 HTTP 的编程:

常规 HTTP 编程

基于 HTTP 的 Web 服务

数据服务

WebClient 类

yes

yes

yes

HttpWebRequest 类

yes

yes

yes

SLsvcUtil.exe 生成的类

no

yes

no

“添加服务引用”功能生成的类

no

yes

yes

DataSvcUtil.exe 生成的类

no

no

yes

WebClientHttpWebRequest 类可用于很多基于 HTTP 的编程,从常规 HTTP 请求到编程 Web 和数据服务。根据您的应用使用 Web 或数据服务的方式,以独占方式使用 WebClientHttpWebRequest 类可能需要您编写大量的代码。

当开发 Web 或数据服务客户端应用时,在 HTTP 级别编程的替代方法就是使用代理类。代理类是分别表示基于相应 WSDL 或 CSDL 文件的 Web 服务或数据服务的类。有关更多信息,请参见本主题的以下各节。

安全注意事项

当连接到需要应用密钥的 Web 服务时,不要将应用密钥随将在手机上运行的应用一起存储。而是创建一个代理 Web 服务来对用户进行身份验证,然后使用该应用密钥调用外部云服务。有关安全建议的更多信息,请参见 Windows Phone 的 Web 服务安全

Web 服务限制

每个 Windows Phone 应用最多允许有 6 个并发传出连接。

当移植 Web 服务客户端代码以便在 Windows Phone 应用中使用时,请检查 .NET API 以确保它支持代码中所使用的方法。有关 Windows Phone 支持的 API 的更多信息,请参见 适用于 Windows Phone 的 .NET API

显示:
© 2014 Microsoft