總結.Net MVC實現長輪詢執行個體

來源:互聯網
上載者:User
這篇文章主要為大家詳細介紹了.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);    }  }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.