前端實現實時通訊-----ajax長連接


  因為web運行模式為請求-響應,服務端無法主動發起通訊,所以通訊實時性存在各種問題,ajax輪詢可以模擬及時通訊,但連接太頻繁將給服務端帶來很大壓力,不頻繁則實時性很差。

  下面介紹在web上真正實現實時通訊的方法,ajax長連接。(ajax長連接是瀏覽器兼容

  原理過程:進入頁面客戶端即發起一個ajax請求,服務端收到請求后不立即返回,將其阻塞,待服務端有新信息時將信息返回給客戶端,客戶端回調函數中收到信息后再次發起請求,服務端阻塞...以此反復。

  缺點:受網絡環境影響,連接有意外斷開的可能性,實際應用時需考慮到這一點做相應容錯處理。

    客戶端代碼:

    <div id="time"> </div>

   <script type="text/javascript" src="js/lib/jquery-1.7.2.min.js"></script>

   <script type="text/javascript">

   function langLink(){
       $.ajax({
           url: 'time.aspx',
           success:function(res){
               $('#time').html(res);
               langLink();
           }
       });
   }
   langLink();

    </script>

    服務端代碼(C#.net):

       System.Threading.Thread.Sleep(5000);
       Response.Write(DateTime.Now.ToString());
       Response.End();

注:此處為示意代碼,阻塞5秒后發送信息,實際應用中應一直阻塞線程,直至某個事件發生,產生新信息發送給客戶端

 

下面是我的公眾號,大家可以關注一下,可以一起學習,一起進步:

 

 

參考地址:http://blog.csdn.net/wzs_xyz/article/details/19625103


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM