DWR2.0实现服务器推:结合Socket技术详解
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"使用DWR (Direct Web Remoting) 2.0 实现服务器推送技术,结合响应式Socket实现客户端消息实时更新。"
在Web开发中,实现服务器向客户端的实时数据推送是一种常见需求,例如在线聊天、股票报价或者实时通知等场景。DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript和Java在浏览器与服务器之间进行直接的远程方法调用。在DWR 2.0版本中,引入了服务器推送功能,使得服务器能够主动将新数据发送到客户端,而无需客户端不断地发起请求。
配置DWR 2.0以启用服务器推送功能,首先需要在`web.xml`文件中进行设置。在提供的内容中,我们看到了配置文件的一部分,包括设置字符编码过滤器、Struts2的过滤器以及SiteMesh滤镜。这些配置是用于处理Web应用的通用配置,但与DWR的服务器推送配置直接相关的是DWR本身的配置。
要在`web.xml`中启用DWR的推送功能,你需要添加DWR的servlet配置,这通常包括以下几个部分:
1. DWRServlet配置:声明一个名为`dwr`的servlet,指定其类为`org.directwebremoting.servlet.DwrServlet`。
```xml
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
```
2. DWR安全配置:根据应用的安全需求,可能需要配置DWR的安全参数,例如是否允许跨域请求 (`crossDomain`) 或者是否启用会话安全 (`crossDomainSessionSecurity`)。
3. DWR引擎配置:在`dwr.xml`配置文件中,你可以定义哪些Java类和方法可以被JavaScript访问,同时也可以配置服务器推送的相关设置。
在客户端,你需要使用DWR的API来订阅推送事件并处理接收到的数据。DWR提供了一个`AjaxPollingCall`类,可以用来创建异步轮询请求,获取服务器的最新数据。而服务器端,通过创建一个持久化的连接(如使用Socket)来保持与客户端的连接,当有新的数据时,可以直接通过这个连接推送。
为了实现结合响应式Socket的服务器推送,你需要在后台创建一个Socket服务,监听特定端口,当有新数据时,通过这个Socket服务将数据推送到客户端。DWR可以通过监听这个Socket服务,当接收到新数据时,调用预先在客户端注册的回调函数来更新界面。
使用DWR 2.0实现服务器推送客户端,需要在服务器和客户端分别进行相应的配置和编程,通过DWR提供的API和后台Socket服务协同工作,实现高效的数据推送机制,达到实时更新客户端信息的效果。
2019-05-27 上传
2008-04-30 上传
2023-09-28 上传
2023-10-18 上传
2023-10-20 上传
2023-12-14 上传
2023-06-06 上传
2023-07-11 上传
2023-05-19 上传
![](https://profile-avatar.csdnimg.cn/6bd905b61f6e44dbb6627e337c33754a_lvwmjpk.jpg!1)
wmj
- 粉丝: 0
- 资源: 15
最新资源
- 构建Cadence PSpice仿真模型库教程
- VMware 10.0安装指南:步骤详解与网络、文件共享解决方案
- 中国互联网20周年必读:影响行业的100本经典书籍
- SQL Server 2000 Analysis Services的经典MDX查询示例
- VC6.0 MFC操作Excel教程:亲测Win7下的应用与保存技巧
- 使用Python NetworkX处理网络图
- 科技驱动:计算机控制技术的革新与应用
- MF-1型机器人硬件与robobasic编程详解
- ADC性能指标解析:超越位数、SNR和谐波
- 通用示波器改造为逻辑分析仪:0-1字符显示与电路设计
- C++实现TCP控制台客户端
- SOA架构下ESB在卷烟厂的信息整合与决策支持
- 三维人脸识别:技术进展与应用解析
- 单张人脸图像的眼镜边框自动去除方法
- C语言绘制图形:余弦曲线与正弦函数示例
- Matlab 文件操作入门:fopen、fclose、fprintf、fscanf 等函数使用详解