一、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)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。