怎么从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));
请教个dwr的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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然后再推送,就可以了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报