最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

.Net MVC实现长轮询

来源:懂视网 责编:小采 时间:2020-11-27 22:35:39
文档

.Net MVC实现长轮询

.Net MVC实现长轮询:什么是长轮询? 长轮询是服务器推技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新、发送请求。 长轮询原理? 客户端向服务器发送Ajax请求,服务器接收到请求后,保持连接不返回消息,直到进行相关处理完毕后才返
推荐度:
导读.Net MVC实现长轮询:什么是长轮询? 长轮询是服务器推技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新、发送请求。 长轮询原理? 客户端向服务器发送Ajax请求,服务器接收到请求后,保持连接不返回消息,直到进行相关处理完毕后才返

什么是长轮询?

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

长轮询原理?

    客户端向服务器发送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);
 }
 }

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

.Net MVC实现长轮询

.Net MVC实现长轮询:什么是长轮询? 长轮询是服务器推技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新、发送请求。 长轮询原理? 客户端向服务器发送Ajax请求,服务器接收到请求后,保持连接不返回消息,直到进行相关处理完毕后才返
推荐度:
标签: 实现 net mvc
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top