一、DWR简介
Q:什么是DWR?
A:DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。
Q:DWR有什么优势?特点?
A:开发人员就可以在JavaScript里使用Java代码,就像它们是浏览器的本地代码(客户端代码)一样;运行在WEB上但是不需要浏览器插件。
Q:DWR需要些什么?
A: 1.运行在服务器端的servlet控制器(DwrServlet),它负责接收请求,调用相应业务逻辑进行处理,向客户端返回响应。
2.运行在浏览器端的JavaScript,它负责向服务器端发送请求,接收响应,动态更新页面。
二、DWR配置
1.准备工作。
首先要导入两个jar包(dwr.jar和commons-logging-1.1.1.jar,都已经整合到framework框架中)
其中dwr.jar可以在以下网址中下载
http://directwebremoting.org/...
commons-logging-1.1.1.jar可以在以下网址中下载
http://commons.apache.org/dow...2.在框架中使用
1、XPlayer详解
/** * pushMessage向客户端推送消息,第一个参数为消息类型自定义 * * @param params * 直接传送给前台的参数,第一个为消息类型 * @return */ XPlayer p = XChatEngine.getSingleton().findPlayerById(uniqueCode); //Boolean pushMessage(Object... params) p.pushMessage(XChatConfig.XSYS_MSG_C2C_TEXT,data,frameUser); //前台消息处理 frame.xchat.RegisterMessage(st.XSYS_MSG_C2C_TEXT, function(data, frameUser) { //........消息处理............... } /** * doAction通知客户端消息操作 客户端注册消息 XCHAT_MSG_OPERATE_NOTIFICATION = 14; * * @param params * 第一个参数为子消息 * @return */ XPlayer player = XChatEngine.getSingleton().findPlayerById(uniqueCode); success = player.doAction(XChatConfig.XSYS_MSG_EXECUTE_SCRIPT,data); //前台消息处理 frame.xchat.RegisterMessage(st.XCHAT_MSG_OPERATE_NOTIFICATION, function(msg, data) { if (msg == st.XSYS_MSG_EXECUTE_SCRIPT) { frame.util.GlobalEval(data); } });
更多框架功能
2、MessageService详解
mqttService:mqtt
XPlayerClient:dwr
该Service中主要有两个方法:
(1)sendMessage
(2)broadcastMessage
向指定用户发送一条消息
Parameters:
target // 可能是电话号码,可能是UUID,可能是电子邮件地址
content // 发送消息的具体内容以及协议
notify // 通知对方的方式方法,如:qq,email,mqtt
void com.web.framework.core.module.message.service.impl.MessageService.sendMessage(String target, Map<String, Object> content, String… notify) throws Exception
广播一条消息
Parameters:
groupName // 广播的名称(分组名称=topicName)
content // 发送消息的具体内容
notify // 通知对方的方式方法,如:qq,email,mqtt
void com.web.framework.core.module.message.service.impl.MessageService.broadcastMessage(String groupName, Map<String, Object> content, String… notify)