Windows Phone 7上的双向通信

本文关键字:双向通信 Phone Windows | 更新日期: 2023-09-27 18:16:25

我应该为Windows Phone 7.5制作一个应用程序,它能够与安装在具有相同操作系统的其他设备上的相同应用程序进行双向通信。

我读到Windows Phone上的Silverlight版本只支持BasicHttpBinding,所以我认为我将不得不使用BasicHttpBinding实现双向模式:例如,接受传入"连接"的节点可以向请求节点发送GUID,以便识别一种会话(该GUID应该在两个节点之间的每个后续通信中发送)。

有更好的选择吗?

所有通信的核心是两个节点之间的通信:

  • 有三种类型的请求(其中一种必须非常频繁,例如每10秒);
  • 接收请求的节点,可以回答或忽略该请求。

对性能的影响是什么?

Windows Phone 7上的双向通信

我认为没有办法在WP7设备上接受连接,见这里。

由于WP7也不支持轮询双工WCF服务,我建议您手动实现它,类似于:http://www.dominikschmidt.net/2010/12/windows-phone-7-callbacks-and-duplex-wcf/

您将需要一个中央服务器,所有客户端不断地向其发送消息。每次Client1调用服务器时,它都会检查数据库以查看Client2是否向Client1发送消息。如果是,则该消息将包含在对Client1的响应中。

您可能需要中继服务,因为您不太可能在设备之间直接进行路由可达的稳定通信。例如,Project Hawaii Relay Service可能会提供您想要的东西,或者您可以在自己的服务器上实现看起来和行为都非常相似的东西。