這篇文章主要介紹了.Net MVC怎么實(shí)現(xiàn)長輪詢,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
10年積累的網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計制作后付款的網(wǎng)站建設(shè)流程,更有伊州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。什么是長輪詢?
長輪詢是“服務(wù)器推”技術(shù)實(shí)現(xiàn)方式的一種,可以將服務(wù)端發(fā)生的變化實(shí)時傳送到客戶端而無須客戶端頻繁的地刷新、發(fā)送請求。
長輪詢原理?
客戶端向服務(wù)器發(fā)送Ajax請求,服務(wù)器接收到請求后,保持連接不返回消息,直到進(jìn)行相關(guān)處理完畢后才返回響應(yīng)信息并關(guān)閉連接,客戶端接收到響應(yīng)信息后,進(jìn)行相關(guān)處理,處理完畢后再想服務(wù)器發(fā)送新的請求。
長輪詢的應(yīng)用場景?
長輪詢常應(yīng)用于Web及時通訊、監(jiān)控、即時報價系統(tǒng)等需要實(shí)時將服務(wù)端的變化發(fā)送到客戶端的場景。
長輪詢的優(yōu)缺點(diǎn)?
優(yōu)點(diǎn):無消息時不會頻繁的向服務(wù)器發(fā)送請求。
缺點(diǎn):服務(wù)器保持連接比較耗資源
實(shí)現(xiàn):
前臺代碼:
我們在回調(diào)中,再次調(diào)用函數(shù),使其在每次請求關(guān)閉后,開始下一次請求。
后臺代碼:
我們后臺Controller要使用異步,繼承AsyncController基類
public class DateTimeController : AsyncController { public void GetTimeAsync() { //計時器,5秒種觸發(fā)一次Elapsed事件 System.Timers.Timer timer = new System.Timers.Timer(5000); //告訴.NET接下來將進(jìn)行一個異步操作 AsyncManager.OutstandingOperations.Increment(); //訂閱計時器的Elapsed事件 timer.Elapsed += (sender, e) => { //保存將要傳遞給GetTimeCompleted的參數(shù) AsyncManager.Parameters["nowdate"] = e.SignalTime; //告訴ASP.NET異步操作已完成,進(jìn)行GetTimeCompleted方法的調(diào)用 AsyncManager.OutstandingOperations.Decrement(); }; //啟動計時器 timer.Start(); } public ActionResult GetTimeCompleted(DateTime nowdate) { return Json(new { date = nowdate.ToString("HH:mm:ss") + " Welecom " }, JsonRequestBehavior.AllowGet); } }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“.Net MVC怎么實(shí)現(xiàn)長輪詢”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!