日期:2014-05-18  浏览次数:20725 次

dwr 发送给指定用户问题
本人按照网上的demo写了一个dwr给指定人员发送信息的程序,但奇怪的问题是在对比人员id的时候,即使id不相等的用户也会受到信息,纠结了好几天,还是没有解决。

代码部分:

1,java类
--------------------- 

public class TestMsg {  
      
    public void sendMsg(String userid,String message){    
     final String userId = userid;
     final String autoMessage = message;  
     //过滤器
        ScriptSessionFilter filter = new ScriptSessionFilter() {              
              public boolean match(ScriptSession scriptSession) {
                  String tag = (String)scriptSession.getAttribute("userId" );
                  System. out.println(tag);
                  System.out.println("userId.equals(tag)="+userId.equals(tag));
                  return userId.equals(tag);
             }
        };
        Runnable run = new Runnable(){
              private ScriptBuffer script = new ScriptBuffer();
              public void run() {
                   //设置要调用的 js及参数
               System.out.println("----------------run----------------");
                   script.appendCall( "showMessage", autoMessage);
                   //得到所有ScriptSession
                  Collection<ScriptSession> sessions = DWRScriptSessionListener.getScriptSessions();
                   //遍历每一个ScriptSession
                   for (ScriptSession scriptSession : sessions){
                    System.out.println("for (ScriptSession scriptSession : sessions)");
                        scriptSession.addScript( script);
                  }
         &n