`
iluoxuan
  • 浏览: 582300 次
  • 性别: 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+"服务器推送"简单web聊天

    为了实现实时通信,一种常见的解决方案是“Ajax+服务器推送”技术,本文将围绕这个主题,特别是通过JSP实现一个简单的Web聊天应用,探讨其工作原理和技术细节。 【服务器推送】: 服务器推送是一种在服务器端主动向...

    ajax-demo推送演示例子

    综上所述,"ajax-demo推送演示例子"涉及到Ajax技术与Servlet服务器端推送的结合,通过长轮询实现页面实时更新的效果。开发者可以通过理解Ajax的工作机制,以及如何在服务器端实现推送,来构建类似的交互式Web应用。

    dwr服务器推送,dwr.jar,推送,服务器ajax,dwr服务推送例子

    这个过程被称为“反向Ajax”或“服务器推送”,它能够实现在不依赖用户操作的情况下,服务器主动向客户端发送数据。 DWR的核心组件包括几个部分: 1. **Engine**:这是DWR的核心,负责处理JavaScript到Java的转换和...

    多种方式模拟服务器推送客户端

    本文将详细探讨如何通过JAVA实现多种服务器推送客户端的方式,包括Ajax轮询、长连接、长轮询以及Iframe刷新。 1. **Ajax轮询** Ajax轮询是最基础的实现方式,其原理是客户端定时发送Ajax请求到服务器,服务器接收...

    实现 Dwr 服务器推送

    本文将详细介绍如何实现DWR的服务器推送功能。 一、DWR简介 DWR的核心功能是通过AJAX技术创建了一个JavaScript到Java的桥梁,使得开发者可以像操作本地对象一样操作远程服务器上的对象。它支持自动类型转换、错误...

    基于AJAX(XMLHTTPRequest)的服务器推送框架.zip

    【标题】"基于AJAX(XMLHTTPRequest)的服务器推送框架.zip" 涉及的主要知识点是AJAX(异步JavaScript和XML)技术以及XMLHttpRequest对象在实现服务器推送中的应用。AJAX是一种网页开发技术,它允许网页在不刷新整个...

    DWR服务器推送技术(实时)

    DWR使用一种称为Reverse Ajax或Comet的技术来实现服务器推送。它创建了一个持久化的HTTP连接,使得服务器可以在准备好新数据时立即发送,而不需要等待客户端的请求。DWR提供了一种简单的方式来注册JavaScript函数,...

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

    本项目是一个利用Ajax反向推送(Comet技术)实现的Web聊天室源码,通过Java语言的Servlet作为控制器,提供了一个完整的可运行示例。 首先,我们要理解什么是Ajax反向推送(Comet技术)。传统的Ajax请求是客户端发起...

    DWR 简单额服务器推送技术DEMO

    在DWR中,服务器推送是通过一种叫做"Reverse Ajax"或者"Comet"的技术实现的。这种方式可以让服务器在接收到客户端的一个请求后,保持连接开放状态,并在合适的时候通过同一个连接向客户端发送数据,而不是等待客户端...

    AJAX+Servlet开发案例-聊天室源代码

    WebSocket则建立持久连接,允许服务器主动推送新消息给客户端。 在提供的"ChatRoom"源代码中,你可以看到这些概念的具体实现,包括Servlet类、HTML页面和JavaScript脚本。通过分析和运行这个案例,你不仅可以了解...

    servlet 3.0 异步 推送 聊天室

    3. **Comet技术**: Comet是一种模拟服务器推送的技术,包括两种主要实现:长轮询(Long Polling)和流(Streaming)。Servlet 3.0的异步处理可以轻松实现这两种技术,减少不必要的HTTP请求和响应延迟。 4. **前端...

    dwr推送demo,用户互推、服务器推送,

    在"用户互推、服务器推送"的场景下,DWR的推送功能可以让服务器主动向客户端发送数据,而不是等待客户端发起请求。这在实时性要求较高的应用中非常有用,比如聊天室、股票报价或者在线游戏等。 这个demo中,我们...

    servlet3.0推送聊天室

    本文将深入探讨如何利用Servlet 3.0的异步功能来构建一个推送信息至客户端的聊天室。 首先,我们需要了解Servlet 3.0的异步处理。在Servlet 2.x版本中,每次HTTP请求都会绑定到一个线程,直到请求处理完成。这种...

    springMVC+dwr技术实现消息推送实例

    5. **事件处理:** 当服务器推送消息时,JavaScript会接收到通知,然后根据需求更新页面或者触发其他客户端事件。 6. **安全性和优化:** 考虑到性能和安全性,可能需要限制长连接的数量,进行连接管理和超时处理,...

    comet demo 向客户端推送例子

    - 客户端JavaScript代码:负责建立和维持Comet连接,并处理服务器推送过来的数据。 - 服务器端Java代码:创建Servlet或Filter来处理HTTP请求,当有新消息时,通过挂起的HTTP连接向客户端发送。 为了运行这个示例,...

    servlet 3.0 聊天室 推送

    此外,客户端也需要与服务器保持持久连接,以便实时接收服务器推送的消息。这通常通过AJAX长轮询、WebSocket或者Server-Sent Events (SSE) 实现。在这个例子中,我们可能会选择WebSocket,因为它提供双向通信,适合...

    pushlet实现服务器端向客户端推送消息总结

    - 完成上述步骤后,部署 Web 工程并启动服务器,然后在客户端(可能是浏览器或 Applet)加载 Pushlet 客户端代码,即可开始接收服务器推送的消息。 通过 Pushlet,开发者可以构建高效、实时的交互式应用,减少了...

    java推送例子

    DWR(Direct Web Remoting)是一个开源的Java库,它允许在浏览器和服务器之间进行全双工通信,非常适合用于实现Web应用的实时推送功能。 首先,让我们深入理解什么是推送技术。在Web开发中,传统的HTTP协议是一种...

    dwr spring服务器主动推送示例代码

    这个类会被DWR自动暴露给JavaScript,以便于服务器推送数据。 ```java public class ServerPushService { public void sendMessage(String message) { // 业务逻辑,获取需要推送的数据 // ... // 调用DWR ...

    基于pushlet实现的jsp网站消息推送

    WebSocket提供了双向通信的全双工通道,而Comet则是通过HTTP长轮询或流等方式模拟服务器推送。这些技术各有优缺点,选择哪种取决于具体应用场景和需求。 综上所述,基于Pushlet的JSP网站消息推送技术是解决实时数据...

Global site tag (gtag.js) - Google Analytics