2010-05-19 39 views
1

我想將xml序列化的對象從服務器傳遞到客戶端,另一種方式是周圍的。現在,使用WCF從移動客戶端(緊湊框架)調用方法(可能很容易),但有沒有辦法讓服務器可以調用客戶端的方法或其他方式從客戶端獲取數據?我知道在緊湊框架中不提供回調協議,因爲您可以在這裏看到:http://blogs.msdn.com/andrewarnottms/archive/2007/09/13/calling-wcf-services-from-netcf-3-5-using-compact-wcf-and-netcfsvcutil-exe.aspxWCF - Compact Framework - 從手機客戶端獲取數據

本來我想到的是套接字編程和我自己開發的,然後有人在這裏提到了WCF。但似乎WCF只能在非移動環境中工作,因爲我需要回調。

任何人都可以幫助我嗎?是否可以開發與桌面服務器和使用WCF的多個移動客戶端的雙向通信,還是我將不得不進行套接字編程?

感謝您的任何建議或任何形式的幫助!

+0

你可能想給我們一些關於你硬件的更多細節。我沒有看到windows-mobile標籤,這使我相信您使用的是通用CE設備,並且可能有能力更改操作系統。此信息可能會影響人們的答案。 – ctacke 2010-05-19 21:00:08

回答

0

即使你使用套接字,由於路由,載波過濾和NAT轉換(你沒有提到你的實際網絡拓撲結構),它可能有點困難。這就是大多數移動應用程序必須輪詢服務器的原因,即使它是「推送」範例(例如Exchange的推送機制,客戶端實際輪詢)。

一般來說,除非你像本地無線網絡那樣擁有堅實的,可路由的,未經過濾的網絡訪問,否則客戶端應定期調用服務器並詢問服務器是否有數據。如果確實如此,那麼它會從服務器中提取數據。

編輯

現在我們知道一點關於你的topolgy從您的意見,我可以引導你多一點。不幸的是,微軟並沒有讓Windwos CE設備輕鬆託管服務(WCF或其他)。理論上講,所需的基礎結構可以建立自己的WCF頻道並實際提供服務,但這不是一項簡單的任務。我很久以前就對它進行了調查,並認爲這是幾個月的工作,而這可能是在雷蒙德的某個人的協助下完成的,他們知道現有的Exchange渠道是如何工作的。

就我個人而言,我會選擇使用our Padarn web server託管基於REST的Web服務,因爲它很簡單,現在已經爲很多客戶完成了。我意識到將Padarn作爲一種解決方案是有點自私的,但是我在Padarn中實現了自定義IHttpHandlers的全部原因是因爲我找不到任何其他東西,它們確實爲CE設備提供了自己的東西服務,這是我們經常需要爲其提供解決方案的問題。

其他選項可能是專有的套接字解​​決方案,在設備上託管FTP服務器,使用MS(提供異議,IMO)MS提供的帶有ISAPI,Telnet或其他協議的HTTP服務器。他們都似乎是黑客,很多工作或兩者兼而有之。

+0

嗯,實際上我正在本地無線網絡中工作。另外,我希望服務器從客戶端獲取數據,而不是周圍的其他方式! – jagse 2010-05-19 20:33:33

+0

據我所知,你想從設備拉。在許多應用中(例如蜂窩網絡 - 您沒有指定),這是不切實際的或不可能的。 – ctacke 2010-05-19 20:50:22

1

at ctacke

謝謝你的幫忙。我真的偶然發現了你的Padran網絡服務器。還真沒有檢查過它。但我肯定會在稍後做這件事。無論如何,套接字解決方案目前似乎並不糟糕。與此同時,我認爲將數據從多個客戶端發送到'套接字服務器'是相當容易的。如果我能以某種方式管理這些連接,我可以將數據發送回客戶端。然後,如果協議處理我通過網絡發送的數據或命令,我將不得不想出一些類似的協議......我想最難的部分是組成這樣的協議,因爲我對這個atm沒有任何線索...