您现在的位置是:网站首页> 编程资料编程资料
.Net MVC实现长轮询_实用技巧_
2023-05-24
273人已围观
简介 .Net MVC实现长轮询_实用技巧_
什么是长轮询?
长轮询是“服务器推”技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新、发送请求。
长轮询原理?
客户端向服务器发送Ajax请求,服务器接收到请求后,保持连接不返回消息,直到进行相关处理完毕后才返回响应信息并关闭连接,客户端接收到响应信息后,进行相关处理,处理完毕后再想服务器发送新的请求。
长轮询的应用场景?
长轮询常应用于Web及时通讯、监控、即时报价系统等需要实时将服务端的变化发送到客户端的场景。
长轮询的优缺点?
优点:无消息时不会频繁的向服务器发送请求。
缺点:服务器保持连接比较耗资源
实现:
前台代码:
我们在回调中,再次调用函数,使其在每次请求关闭后,开始下一次请求。
后台代码:
我们后台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 Core+Angular Cli/Angular4开发环境搭建教程_实用技巧_
- Asp.Net Core简介与安装教程_实用技巧_
- SqlDataReader指定转换无效的解决方法_实用技巧_
- .net如何使用Cache框架给程序添加Cache_实用技巧_
- asp.net 获取客户端浏览器访问的IP地址的实例代码_实用技巧_
- Visual Studio(VS2017)配置C/C++ PostgreSQL9.6.3开发环境_实用技巧_
- ASP.NET实现的生成验证码功能示例【附demo源码】_实用技巧_
- .net下Quartz.Net的使用方法_实用技巧_
- ASP.NET编程简单实现生成静态页面的方法【附demo源码下载】_实用技巧_
- Asp.Net MVC4通过id更新表单内容的思路详解_实用技巧_
