深圳.net培训
达内深圳罗湖中心

138-2888-3675

热门课程

.Net实现长轮询_深圳达内龙岗校区

  • 时间:2017-08-02
  • 发布:深圳.net培训班
  • 来源:达内新闻

.Net MVC实现长轮询

什么是长轮询?

 长轮询是“服务器推”技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新、发送请求。

长轮询原理?

 客户端向服务器发送Ajax请求,服务器接收到请求后,保持连接不返回消息,直到进行相关处理完毕后才返回响应信息并关闭连接,客户端接收到响应信息后,进行相关处理,处理完毕后再想服务器发送新的请求。

长轮询的应用场景?

 长轮询常应用于Web及时通讯、监控、即时报价系统等需要实时将服务端的变化发送到客户端的场景。

长轮询的优缺点?

优点:无消息时不会频繁的向服务器发送请求。

缺点:服务器保持连接比较耗资源

实现:

前台代码:

我们在回调中,再次调用函数,使其在每次请求关闭后,开始下一次请求。

div id="container"/div

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);}

  }


达内深圳校区温馨提示:如果你在阅读文章时碰到什么不清楚或不明白的地方,可以进行在线咨询;如果你需要报名,也可以通过在线预约,我们将免费为你安排,或者关注深圳达内微信公众平台:tarenasz(更多内容请点击:深圳.net培训



达内新闻
上一篇:.NET MD5加密解密代码解析_深圳达内龙岗校区
下一篇:.net MVC 连接数据本地数据库三种方法总结_深圳达内龙岗校区

.net培训具体有哪些内容?

NET 有什么缺点吗?

.net培训中什么是 Web Pages?

谁适合学习.net教程,月薪过万

选择城市和中心
贵州省

广西省

海南省