您好,登錄后才能下訂單哦!
這篇文章主要介紹.Net MVC長輪詢的案例,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
什么是長輪詢?
長輪詢是“服務器推”技術實現方式的一種,可以將服務端發生的變化實時傳送到客戶端而無須客戶端頻繁的地刷新、發送請求。
長輪詢原理?
客戶端向服務器發送Ajax請求,服務器接收到請求后,保持連接不返回消息,直到進行相關處理完畢后才返回響應信息并關閉連接,客戶端接收到響應信息后,進行相關處理,處理完畢后再想服務器發送新的請求。
長輪詢的應用場景?
長輪詢常應用于Web及時通訊、監控、即時報價系統等需要實時將服務端的變化發送到客戶端的場景。
長輪詢的優缺點?
優點:無消息時不會頻繁的向服務器發送請求。
缺點:服務器保持連接比較耗資源
實現:
前臺代碼:
我們在回調中,再次調用函數,使其在每次請求關閉后,開始下一次請求。
<p id="container"></p> <script type="text/javascript"> $(function () { function longPolling() { $.getJSON("/DateTime/GetTime", function (json) { $("#container").append(json.date + "<br/>"); longPolling(); }); }; longPolling(); }); </script>
后臺代碼:
我們后臺Controller要使用異步,繼承AsyncController基類
public class DateTimeController : AsyncController { public void GetTimeAsync() { //計時器,5秒種觸發一次Elapsed事件 System.Timers.Timer timer = new System.Timers.Timer(5000); //告訴.NET接下來將進行一個異步操作 AsyncManager.OutstandingOperations.Increment(); //訂閱計時器的Elapsed事件 timer.Elapsed += (sender, e) => { //保存將要傳遞給GetTimeCompleted的參數 AsyncManager.Parameters["nowdate"] = e.SignalTime; //告訴ASP.NET異步操作已完成,進行GetTimeCompleted方法的調用 AsyncManager.OutstandingOperations.Decrement(); }; //啟動計時器 timer.Start(); } public ActionResult GetTimeCompleted(DateTime nowdate) { return Json(new { date = nowdate.ToString("HH:mm:ss") + " Welecom " }, JsonRequestBehavior.AllowGet); } 就是有關.Net MVC長輪詢的實現方法的詳細內容,更多請關注億速云其它相關文章!
以上是.Net MVC長輪詢的案例的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。