2011-12-02 101 views
1

我應該爲Windows Phone 7.5創建應用程序,該應用程序能夠與安裝在具有相同操作系統的其他設備上的相同應用程序進行雙向通信。Windows Phone 7上的雙向通信

我讀到Windows Phone上的Silverlight版本僅支持BasicHttpBinding,所以我想我必須使用BasicHttpBinding實現雙向模式:例如,接受傳入「連接」的節點可以將GUID發送給請求節點爲了識別一種會話(這個GUID應該被髮送用於兩個節點之間的每個後續通信)。

有更好的選擇嗎?

所有通信的核心是兩個節點之間的通信:

  • 有三種類型的請求(其中之一必須非常頻繁,比如每10秒);
  • 接收請求的節點可以回答或忽略請求。

對性能有什麼影響?

+0

你是如何處理路由?這將是一個WiFi,本地網絡的東西,還是你希望能通過電話收音機(GSM等)工作? – ctacke

+0

通信發生在互聯網上(通過WiFi等)。 – enzom83

回答

3

我不認爲有辦法接受WP7設備上的連接,請參閱here

由於WP7不支持全雙工調查WCF服務要麼,我建議你手動實現它,與此類似:http://www.dominikschmidt.net/2010/12/windows-phone-7-callbacks-and-duplex-wcf/

你需要所有的客戶不斷地將消息發佈到中央服務器。每次Client1調用服務器時,它都會檢查數據庫以查看Client2是否向Client1發送了消息。如果是這樣,該消息包含在對Client1的響應中。

+0

感謝您的鏈接!據我所知,現在WP7無法提供服務,但只能使用BasicHttpBinding來使用它們。因此,WP7設備只能通過中央服務器「接受」來自另一臺設備的請求... – enzom83

2

您可能需要中繼服務,因爲您不太可能在設備之間直接進行可路由,穩定的通信。例如,Project Hawaii Relay Service可能會提供你想要的東西,或者你可以在你自己的服務器上實現一些看起來很像它的東西。