修改SesssionManager,和Session类使得sessionId是有意义的,一般改成用户id!
Session类添加一个方法:
/*** czp 新增方法,sessionId为用户id
* @param anId
* @param anEvent
* @return
* @throws PushletException
*/
public static Session create(String anId,Event anEvent) throws PushletException {
Session session;
try {
session = (Session) Config.getClass(SESSION_CLASS, "nl.justobjects.pushlet.core.Session").newInstance();
} catch (Throwable t) {
throw new PushletException("Cannot instantiate Session from config", t);
}
// Init session
session.id = anEvent.getField("userId");//sessionId为有意义的用户id
session.controller = Controller.create(session);
session.subscriber = Subscriber.create(session);
return session;
}
修改SessionManager类里面的createSession方法:
/**
* Create new Session (but add later).
* edit by czp
*/
public Session createSession(Event anEvent) throws PushletException {
/*
* 如果存在user,创建一个带有userid的session,
* sessionId变成userid
*/
Session session = null;
if(anEvent.getField("userId") != null && !("").equals(anEvent.getField("userId"))){
session = Session.create(createSessionId(),anEvent);//个性化方法,加入用户id
}else{
session = Session.create(createSessionId());
}
return session;
}
这样就可以将sessionId变成有意义的id了,现在前台接收的p_id就是userId了.