当前位置:首页 > 技术积累 > 正文内容

ASP.NET实现HTTP长轮询(四)——WebApi

竹林之风3年前 (2019-06-10)技术积累2148

        本文主要描述如何在ASP.NET WebApi中实现长轮询:

(1)控制器:

using System;
using System.Web.Http;
using System.Threading.Tasks;
using System.Threading;

public class LongPollingController : ApiController
{
        [NonAction]
        private BaseResponse GetData(object state, BaseRequest request)
        {
            BaseResponse response = new BaseResponse();

            int nowTimes = 0;//当前循环次数(或使用Stopwatch计算时间,超时即退出)
                        int maxTimes = 60;//最大循环次数(或使用Stopwatch计算时间,超时即退出)
                        while (++nowTimes <= maxTimes)//(或使用Stopwatch计算时间,超时即退出)
                        {
                            //判断是否已有新数据,若已有则退出循环
                            Thread.Sleep(100);
                        }
                        
            return response;
        }

        [HttpPost]
        public BaseResponse GetData(BaseRequest request)
        {
            Task<BaseResponse> task = new Task<BaseResponse>(new Func<object, BaseResponse>((state) => { return GetData(state, request); }), null);
            task.Start();
            return task.Result;
        }
}

(2)使用jQuery发送请求:

(function getData() {
    $.post('LongPolling/GetData', {}, function(data) {
        //接收并处理数据
        getData();
    });
})();

扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:http://www.9icode.com/index.php/post/23.html

标签: C#ASP.NET
分享给朋友:

相关文章

C#中问号“?”的用法

C#中问号“?”的用法

        在C#中问号有单问号和双问号两种场景,其中单问号就是用于条件表达式的一个三元运算符;双问号有两个用法:可空类型修饰符和空合并运算符。(1)条件表...

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

        HTTP长连接(long connection)与短连接(short connection)本质上是TCP长连接和短连接:短连接是指在一次HTTP请求和响应之后立即关闭本次TCP连接,...

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定向。在ASP.NET中实现重定向有以下几...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

ASP.NET网站自定义错误处理及其它安全相关

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1).NET运行时接收并处理的部分显示.N...

从被扫描记录看网站安全应该注意的一些细节

从被扫描记录看网站安全应该注意的一些细节

1、尽可能地隐藏服务器真实IP,减少攻击目标。例如使用负载均衡、网关等作为门户,由负载均衡或网关转发到后端服务器。2、服务器必须开放的服务(除HTTP、HTTPS等为公众开放的服务外),尽可能改为其它较大的不常用的端口号,这样攻击者需要扫描...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。