我应该为Windows Phone 7.5制作一个应用程序,它可以与安装在具有相同操作系统的其他设备上的同一个应用程序进行双向通信。
我读到Windows Phone上的Silverlight版本只支持BasicHttpBinding,所以我认为我必须使用BasicHttpBinding实现双向模式:例如,接受传入“连接”的节点可以发送GUID到请求节点以识别一种会话(然后应该为两个节点之间的每次后续通信发送此GUID)。
有更好的选择吗?
所有通信的核心是两个节点之间的通信:
对绩效有何影响?
答案 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可能会提供您想要的内容,或者您可以在自己的服务器上实现与其类似的内容。