dwr实现前台推送技术

一、web.xml以及dwr.xml配置

    需要在web.xml中配置servlet,以及dwr.xml中配置推送消息的java类。

二、推送界面进行用户绑定

dwr实现前台推送技术

onLoad方法在界面加载完成后立即执行。

三、后台实现

dwr实现前台推送技术

dwr实现前台推送技术

四、前台发推送消息,后台完成消息推送

dwr实现前台推送技术

这是前台群发推送消息,把消息插入数据库后,从后台完成消息推送。

五、消息推送实现

 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插件,完成前台推送给各个用户的消息提醒。