首页后端开发ASP.NET有关.Net MVC长轮询的实现方法

有关.Net MVC长轮询的实现方法

时间2024-01-30 21:53:03发布访客分类ASP.NET浏览743
导读:收集整理的这篇文章主要介绍了有关.Net MVC长轮询的实现方法,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了.Net MVC实现长轮询的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下@H_304...
收集整理的这篇文章主要介绍了有关.Net MVC长轮询的实现方法,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了.Net MVC实现长轮询的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下@H_304_0@

什么是长轮询?

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

长轮询原理?

客户端向服务器发送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长轮询的实现方法的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

.Net方法

若转载请注明出处: 有关.Net MVC长轮询的实现方法
本文地址: https://pptw.com/jishu/593085.html
详解ASP.NET Core 2.0 版本的新特性 JavaScript怎么求对数

游客 回复需填写必要信息