Windows Phone 7上的双向通信

时间:2011-12-02 18:57:26

标签: c# wcf windows-phone-7

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

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

有更好的选择吗?

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

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

对绩效有何影响?

2 个答案:

答案 0 :(得分:3)

我认为没有办法接受WP7设备上的连接,请参阅here

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

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

答案 1 :(得分:2)

您可能需要中继服务,因为您不太可能在设备之间直接进行可路由,稳定的通信。例如,Project Hawaii Relay Service可能会提供您想要的内容,或者您​​可以在自己的服务器上实现与其类似的内容。