pushlet 应用到项目中 一 (修改SesssionManager,和Session类)
修改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 sessionsession.id = anEvent.getField("userId");//sessionId为有意义的用户idsession.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了.