基于Ajax的长连接

JS代码:

 1 <script>
 2  function longPolling() {
 3         $.ajax({
 4             url: "testlp",
 5             data: { "time": 2, "timeout": 3 },//time:假设传输数据时间,timenout:最大延迟
 6             dataType:‘JSON‘,
 7             success: function (data) {
 8                 //输出data
 9                 longPolling();
10             }
11         });
12     }
13 </script>  

服务器代码:

 1 public string testlp(int time, int timeout)
 2        {
 3             // 死循环 查询有无数据变化
 4            while (true) {
 5                System.Threading.Thread.Sleep(1000);// 休眠1000毫秒
 6                int i = 1;
 7                if (i > timeout) { break; }//最大延迟
 8                else {
 9                    i++;
10                    int compl = 1; //模拟数据库时间
11                    if (compl != time)//对比数据库中时间变化,此处一直进入if
12                    {
13                        string data= 数据库中数据
14                        // 返回数据信息,请求时间、返回数据时间、耗时
15                        //writer.print("result: " + i + ", response time: " + responseTime + ", request time: " + timed + ", use time: " + (responseTime - timed));
16                        return data;
17                        break; // 跳出循环,返回数据
18                    }
19                }
20            }
21            return "false";//不会执行
22        }  
时间: 2024-10-10 11:09:24

基于Ajax的长连接的相关文章

RPC、基于netty的长连接和websocket

1 RPC RPC也采用C/S的编程模式,以模块调用的简单性忽略通讯的具体细节,以便程序员不用关心C/S之间的通讯协议,集中精力对付实现过程.这就决定了 RPC生成的通讯包不可能对每种应用都有最恰当的处理办法,与Socket方法相比,传输相同的有效数据,RPC占用更多的网络带宽. RPC实在socket的基础上实现的,但是它比socket需要更多的网络和资源系统. 2 基于netty的长连接 异步.高性能 Boss线程(一个服务器端口对于一个)---接收到客户端连接---生成Channel---

基于分布式Http长连接框架--架构模型

我画了个简单的架构图来帮助说明: 其实为发布订阅架构模式. 生产者和消费者我们统一可理解为客户端,消息中间件可认为是服务端. 生产者和消费者做为客户端要跟服务端交互,则先通过代理订阅服务端,订阅成功后即可跟服务端互通互联,此刻的连接通道为长连接. 长连接的优势在于会将消息主动通知到客户端,避免客户端去做大量的轮询工作而造成资源浪费,而且对于移动应用来说,可较大程度上节省GPRS流量. 当连接建立好后,生产者可随时发送消息,如果在发消息过程当中,服务端由于各种原因不能连接,则消息的发送会回放重试,

基于分布式Http长连接框架--代码模型

好的代码应该是方便客户端使用,代码能够自描述,规范化,大众标准化. 而且我相信代码也是有生命的,需要不断的维护它,你以什么样的态度对待它,它就会以同样的态度回敬你,所以在写代码前,先摆好自己的态度(一个心态良好的创造者),只有这样你的生命才会精彩,代码的生命也会精彩. 前面说了简单的框架模型,简单的设计模型,如果具体到客户端使用的话还需要代码模型来描述下,当作集成的sdk说明即可. 生产者如何发送消息: 1:配置服务端地址及名称; 2:注册本身为客户端,并约定一个全局唯一的名称 3:开启代理 4

基于AJAX的长轮询(long-polling)方式实现简单的聊天室程序

原理: 可以看:http://yiminghe.javaeye.com/blog/294781 AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP 请求,JavaScript 响应处理函数根据服务器返回的信息对 HTML 页面的显示进行更新.使用 AJAX 实现“服务器推”与传统的 AJAX 应用不同之处在于: 服务器端会阻塞请求直到有数据传递或超时才返回. 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,

利用Ajax实现长连接(模拟推送,半长连接)

很多程序都可以通过socket来实现长连接,实现消息的即时推送.但由于http请求一般都是短连接,一次请求结束,就会断开与服务器的连接,服务器不能主动推送数据到客户端,而只能由客户端发起请求,但有些时候,需要在web上实现即时的消息传输,比如即时聊天.股票动态信息等. 在Ajax技术被发掘以前,在网页上实现无刷新的即时聊天,似乎是很困难的事情,但由于Ajax技术的兴起,人们可以进一步来挖掘它的潜力了,象gmail.google gtalk的网页版,都是Ajax长连接的重要应用,目前很多网站可能都

ajax实现长连接

项目需求:需要实时的读取日志文件里的数据,并且使用Echart实时更新折线图. 使用ajax实现客户端与服务器端的数据传输. 目的:我想通过ajax与服务器建立一个长连接,服务器会不断的传输数据给前台,由于日志不断的更新,我想把新的数据不断的传给前台. 设计:本来想着使用服务器使用一个死循环去读取日志信息,一个线程去提交数据. 参考:https://www.cnblogs.com/hoojo/p/longPolling_comet_jquery_iframe_ajax.html 发现与想象的不同

Comet:基于 HTTP 长连接的“服务器推”技术

“服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求.服务器端响应的方式工作.这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔.LED.温度.电压发生变化: 即时通信系统:其它用户登录.发送信息: 即时报价系统:后台数据库内容发生变化: 这些应用都需要服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求.“服务器推”技术在现实应用中有一些解决方案,本文将这些解决方案分为两类:一类需要在浏览器端安装插件,基于套接口传送信息,或是使用 RMI.CORBA 进

【转】Comet:基于 HTTP 长连接的“服务器推”技术

原文链接:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/ 很多应用譬如监控.即时通信.即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新.发送请求.本文首先介绍.比较了常用的“服务器推”方案,着重介绍了 Comet - 使用 HTTP 长连接.无须浏览器安装插件的两种“服务器推”方案:基于 AJAX 的长轮询方式:基于 iframe 及 htmlfile 的流方式.最后分析了开发 Comet 应用需要注意的一些问题

Comet技术详解:基于HTTP长连接的Web端实时通信技术

前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events). 关于这4种技术方式的优缺点,请参考<Web端即时通讯技术盘点:短轮询.Comet.Websocket.SSE>.本文将专门讲解Comet技术.(本文同步发布于:http://www.52im.net/thread-334-1-1.html) 学习交流 - 即时通