• DWR推送


    /**
    * 向浏览器客户端推送消息
    * @param userid 要推送的对象
    * @param function 调用JS函数名(默认receiveMessage)
    * @param all 是否推送所有人
    * @param params 要推送的内容
    */

    public static void pushMessage(final String userid, final String function, final boolean all, final Object... params) {

      Browser.withAllSessionsFiltered(

        new ScriptSessionFilter() {
          public boolean match(ScriptSession session) {
            if (session.getAttribute("userid") == null){
              return false;
            }else
              return all ? true : (session.getAttribute("userid")).equals(userid);
            }

        },

        new Runnable() {
          private ScriptBuffer script = new ScriptBuffer();

          public void run() {
            script.appendCall(StringUtils.isBlank(function) ? "receiveMessage" : function, params);
            Collection<ScriptSession> sessions = Browser
              .getTargetSessions();
            for (ScriptSession scriptSession : sessions) {
              scriptSession.addScript(script);
              System.out.println("sendTime: " + new Date().getTime() + "==>" + scriptSession.getAttribute("userid"));
            }
          }
        });
      }

         match方法判断Session是否匹配;

           Browser.getTargetSessions();获取匹配的Session;

         script.appendCall(StringUtils.isBlank(function) ? "receiveMessage" : function, params);//添加js函数及参数

         scriptSession.addScript(script);添加推送

        以上是个人理解,如有问题欢迎提出来纠正!

  • 相关阅读:
    python解决线性规划问题
    python解决多变量最优化问题
    python处理单变量优化
    java枚举类常用方法
    java实现十大排序算法
    python解方程
    python科学计算包
    python做微积分
    php定界符<<<EOF讲解
    一键安装LNMP/LAMP
  • 原文地址:https://www.cnblogs.com/hxbao/p/3607833.html
Copyright © 2020-2023  润新知