国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
WCF的雙向通訊-基于Http的雙向通訊 V.S. 基于TCP的雙向通訊 - Artech - 博客園

基于Http的雙向通訊V.S.基于TCP的雙向通訊

由于Http和TCP在各自協(xié)議上的差異,他們實現(xiàn)雙向通信的發(fā)式是不同的。

Http是一個應(yīng)用層的協(xié)議,它的主要特征就是無連接和無狀態(tài)(connectless & stateless)。它采用傳統(tǒng)的Request/Reply的方式進(jìn)行通信,Client發(fā)送HttpRequest請求Server的某個資源,Server端接收到該Http Request, 回發(fā)對應(yīng)的HttpResponse。當(dāng)Client端接收到對應(yīng)的Response,該Connection會關(guān)閉。也就是說Client和Server的Connection僅僅維持在發(fā)送Request到接收到Response這一段時間內(nèi)。同時,每次基于Http的connection是相互獨(dú)立,互不相干的,當(dāng)前connection無法獲得上一次connection的狀態(tài)。為了保存調(diào)用的的狀態(tài)信息,ASP.NET通過把狀態(tài)信息保存在Server端的方式實現(xiàn)了對Session的支持,具體的做法是:ASP.NET為每個Session創(chuàng)建一個Unique ID,與之關(guān)聯(lián)一個HttpSessionState對象,并把狀態(tài)信息保存在內(nèi)存中或者持久的存儲介質(zhì)(比如SQLServer)中。而WCF則采用另外的方式實現(xiàn)對Session的支持:每個Session關(guān)聯(lián)到某個Service Instance上。

回到我們WCF雙向通信的問題上,當(dāng)Client調(diào)用Service之前,會有一個Endpoint在Client端被創(chuàng)建,用于監(jiān)聽Service端對它的Request。Client對Service的調(diào)用會建立一個Client到Server的Connection,當(dāng)Service在執(zhí)行操作過程中需要Callback對應(yīng)的Client,實際上會建立另一個Service到Client的Httpconnection。雖然我們時候說WCF為支持雙向通信提供Duplex Channel,實際上這個Duplexchannel是由兩個Request/Reply Channel組成的。

而對于TCP/IP簇中的傳輸層協(xié)議TCP,它則是一個基于Connection的協(xié)議,在正式進(jìn)行數(shù)據(jù)傳輸?shù)闹埃仨氁贑lient和Server之后建立一個Connection,Connection的建立通過經(jīng)典的“3次握手”來實現(xiàn)。TCP天生就具有Duplex的特性,也就是說當(dāng)Connection被創(chuàng)建之后,從Client到Sever,和從Server到Client的數(shù)據(jù)傳遞都可以利用同一個Connection來實現(xiàn)。對于WCF中的雙向通信,Client調(diào)用Service,Service CallbackClient使用的都是同一個Connection、同一個Channel。所以基于TCP的DuplexChannel才是真正意義上的Duplex Channel。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
WCF之旅 (11): 再談WCF的雙向通訊-基于Http的雙向通訊 V.S. 基于TCP的雙向通訊
Uber容錯設(shè)計與多機(jī)房容災(zāi)方案 - 高可用架構(gòu)系列
WCF Tutorial
CentOS 7 中firewall-cmd命令
WCF基本資料
HTTP協(xié)議中的長連接與短連接
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服