天天看點

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

本節小講通訊方式,上兩節的我們講的basichttpbinding,是其中的一種基礎的通訊方式,

還有一種雙向通訊的,專業詞彙叫“雙工通訊”,不過雙工通訊一聽起來太以了解,

就好像那個特性“契約”,一聽就感覺像賣身契一樣讓人覺得匪夷所思。

下面全用雙向代替雙工說話了。

說雙向通訊好了解了吧,再簡單說就是:用戶端可以調用服務端的方法;服務端也可以調用用戶端的方法。

對于通訊方式,上兩節,我們都是用:basichttpbinding,除了這個,還說過還有n種的。

為了說明有多少種,我們這裡順便提一個工具,在以下路徑:

開始->所有程式->microsoft visual studio 2010->microsoft windows sdk tools->服務配置編輯器

我們可以通過它來打開wcf相關的config檔案。不過呢,每次指定路徑打開,都是很煩的,

我們希望通過右鍵點選xxx.config之類的,再用這工具打開它。

ok,我們先copy一下服務配置編輯器的路徑,這個待會要粘貼,看以下圖:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

我們點選屬性,并從彈出的快捷方式中複制exe的路徑:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

複制好路徑後,我們回到項目中,這裡就以上個示例world為例了,對着servicereferences.clientconfig右鍵,

當然你也可以選擇web.config,然後選擇打開方式:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

出現彈出視窗後,選擇添加,把路徑粘貼進去,并起一個好名稱,如下圖:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

點确定之後,打開方式就多了一項了,當然,你也可以把它設定為預設打開方式。

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

ok,現在我們通過剛添加的那項打開配置檔案:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

看到終結點那項沒,用的就是basichttpbinding通訊,我們點選下拉,看看一共有多少個通訊方式:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

數了一下,竟然有19個之多。根據不同的場合,使用不同通訊方式進行通訊,

簡單的說就是:wcf不僅可以放在我們的web中通過iis來通路,也可以寄放在winform程式中通過tcp方式進行通訊了。

當然還有n(19)種這麼多,應用場合是五花八門了。

通過上面的工具,你可以輕松點的配置webconfig相關檔案,不用看那xml還得一字一字的敲打了。

關于雙向通訊,basichttpbinding能做到麼?

我嘗試弄了一下,編繹是通過了,不過在更新服務引用的時候,出現以下錯誤:

Silverlight+WCF 新手執行個體 象棋 WCF通訊方式(十六)

按照上面的提示,是究竟不支援,還是配置的不正确,這個暫時不得而知。

那我們是通過什麼來進行雙向通訊的呢?

wsdualhttpbinding這個,需要配置兩個通訊端口,一個是服務端到用戶端的,一個是用戶端到服務端的。

關于這個,在wcf揭密這本書中,其中的那個釋出/訂閱示例,用的就這個:

關于雙向通訊,官方提供了n種可以雙向的,不過今天要用到的,

是pollingduplexhttpbinding,一個擴充的輪詢機制的雙向通訊,當你也可以嘗試用上面的通訊方式去試一試。

既然是擴充,就說明預設沒有,那我們首先就要添加擴充了,用的是預設官方是提供的dll,就在我們安裝的silverlight4的目錄裡:

正常路徑為:c:\program files\microsoft sdks\silverlight\v4.0\libraries\server\system.servicemodel.pollingduplex.dll

 ok,下一節,我們同樣建立一個項目來實作雙向通訊。

版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:

http://www.cnblogs.com/cyq1162/archive/2010/07/13/1776285.html