dwr实现前台推送技术
一、web.xml以及dwr.xml配置
需要在web.xml中配置servlet,以及dwr.xml中配置推送消息的java类。
二、推送界面进行用户绑定
onLoad方法在界面加载完成后立即执行。
三、后台实现
四、前台发推送消息,后台完成消息推送
这是前台群发推送消息,把消息插入数据库后,从后台完成消息推送。
五、消息推送实现
public void sendMessageAuto(String userid, String messageType, int massageCount, String message, SysTaskInfo sysTaskInfo, String username)
{
String userId = userid;
String userName = username;
String autoMessage = message;
String msgType = messageType;
int msgCount = massageCount;
SysTaskInfo taskInfo = sysTaskInfo;
Browser.withAllSessionsFiltered(new ScriptSessionFilter(userId) {
public boolean match(ScriptSession session) {
if (session.getAttribute("userId") == null) {
return false;
}
return session.getAttribute("userId").equals(this.val$userId);
}
}
, new Runnable(msgType, msgCount, autoMessage, taskInfo, userName)
{
private ScriptBuffer script = new ScriptBuffer();
public void run()
{
this.script.appendCall("showMessage", new Object[] { this.val$msgType, Integer.valueOf(this.val$msgCount), this.val$autoMessage, JSONObject.fromObject(this.val$taskInfo).toString(), this.val$userName });
Collection sessions =
Browser.getTargetSessions();
for (ScriptSession scriptSession : sessions)
scriptSession.addScript(this.script);
}
});
}
六、推送到前台
通过Notification.js插件,完成前台推送给各个用户的消息提醒。