iteye_14674 2011-08-11 11:03
浏览 134
已采纳

请教个dwr的问题

怎么从ScriptSession取得当前用户,实现向特定的用户发送脚本? 下面是我的代码,要怎么改造?
FacesContext facesContext = FacesContext.getCurrentInstance();
ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
ServerContext sctx = ServerContextFactory.get(servletContext);
Collection sessions = sctx.getAllScriptSessions();
Util pages = new Util(sessions);
pages.addFunctionCall("initD", subject, "im.xhtml?users=" + java.net.URLEncoder.encode(users));

  • 写回答

7条回答 默认 最新

  • laopeng301 2011-08-11 11:57
    关注

    其实可以这样,跟去session去推送
    因为session是唯一的··
    那么你得自己管理session 与scriptsession的映射和维护正确的scriptsession
    自己维护一个Map,在这个Map里面,定义key就是HttpSession的Id,其值就是ScriptSession对象。
    在每一次页面载入的时候,都去注册此ScriptSession,那么就会把新的ScriptSession绑定到httpSession上面了。

    Map sm
    // hs is HttpSession
    // ss is ScriptSession object
    sm.put(hs.getId(), ss);
    然后
    通过上面的Map取得所有的有效ScriptSession集合
    取出对应你要推送消息的user的sessionid的对应ScriptSession

    然后再推送,就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大