`
iluoxuan
  • 浏览: 573634 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet和ajax实现服务器推送

    博客分类:
  • java
 
阅读更多

1:原理: Http连接是无状态的,请求过去就返回,所以;要实现http的长连接,实现服务器的想客户端推送,需要阻塞请求,等到数据更新然后处理返回给客户端,此时客户端自动请求服务端: js代码简单的为:

 

function sendMsg() {
	var jid = $("#jid").val();
	var tojid = $("#list").val();
	var content = $("#msg").val();

	$.post("chat", {
		jid : jid,
		tojid : tojid,
		content : content
	}, function(result) {

	});
}

$(document).ready(function() {
	
	/**
	 * 聊天窗口
	 */
	$.post("show", {
		eventName : 'msg'
	}, function(result) {
		$("#his").append(result).append("<br/>");
		showMsg();
	});
	
	/**
	 * 用户列表
	 */
	$.post("userlist",{eventName : 'userlist'}, function(result){
		var userlist = $("#userlist");
		userlist.append(result).append("<br/>");
	});
});

function showMsg() {
	$.post("show", {
		eventName : 'msg'
	}, function(result) {
		$("#his").append(result);
		showMsg();
	});
}

 我们以聊天程序为列:

初始化的时候 客户端发一次show请求到servlet,服务器阻塞wait改请求,然后等到客户端发送消息;在那个servlet中释放notifyall改阻塞,继续下执行处理-----。

分享到:
评论

相关推荐

    ajax-demo推送演示例子

    servlet 服务器端推送给页面,ajax

    一个完整的用ajax反转 server push(服务器主动向页面推送数据)技术实现的web聊天室源码

    一个完整的用ajax反转 server push(服务器主动向页面推送数据)技术实现的web聊天室源码。Demo由java语言开发,由servlet作控制器,完整可运行。

    html5服务器推送_动力节点Java学院整理

    随着 REST 架构风格和 AJAX 的流行,服务器更多地使用 JSON 作为响应的数据格式。Web 应用使用 XMLHttpRequest 对象来发送请求,并根据服务器端返回的数据,对页面的内容进行动态更新。通常来说,用户在页面上的操作...

    使用DWR实时推送后台环境量和报警数据

    DWR(逆向Ajax),Direct Web Remoting是一个开放源码的使用Apache许可协议的解决方案,它包含服务器端Java库、一个 DWR Servlet以及 JavaScript库。它的实现是基于Ajax的,可实现无刷新的效果。这个框架最大的优点...

    反向Ajax 30分钟快速掌握

    与传统的MVC模型请求必须从客户端发起由服务器响应相比,使用反向Ajax能够模拟服务器端主动向客户端推送事件从而提高用户体验。本文将分两个部分讨论反向Ajax技术,包括:Comet和WebSocket。文章旨在演示如何实现...

    详解Tomcat7中WebSocket初探

    Ajax + 轮询 :这种方案仅仅是一个模拟实现,本质还是HTTP请求响应的模式,由于无法预期什么时候推送消息,造成很多无效的请求; 通过 Flash等第三方插件 :这种方式能够实现双向通信,但有一个前提条件就是依赖第...

    Wicket 8.X开发文档(中文翻译+英文原版)

    创建特定于服务器的http / 2推送支持 28. Wicket指标监测(实验) 28.1。示例设置 28.2。使用Graphite进行可视化 28.3。测量数据 28.4。写自己的测量 附录A:使用Maven A.1。将Wicket切换到DEPLOYMENT模式 A2。从头...

    jwt:Java Web工具包

    当部署在Servlet 3.0容器中时,它可以使用异步I / O功能来提高使用服务器推送功能时的可伸缩性。 如果要使用PDF渲染支持(WPdfImage和WPdfRenderer类),则还需要将PdfJet [ ]添加到项目中。 建造 它可以很简单: ...

    pushlet获取参数修改过的jar包

    在页面上js代码: // pushlet服务器推送,更新实时监控模块 var initPushlet = function() { PL.parameters.push({"name":"user-id", "value":"001"); PL._init(); PL.joinListen('/source/event'); }; 在...

    拉布拉布拉

    Rablabla-过时 注意:当我们将项目愿景转移到专用服务器时,该项目已过时。... 并使用将其在线推送: $ bx cf push Rablabla-Staging -n &lt;your&gt; -p defaultServer 注意 Malte Bartels,Dominik Lenz,Hen

Global site tag (gtag.js) - Google Analytics