文件名称:pushlet获取参数修改过的jar包
文件大小:84KB
文件格式:JAR
更新时间:2020-05-22 09:06:19
pushlet jar 参数
在使用的过程中发现,如果要在pullEvent()方法中获取参数比较麻烦,查看源码发现nl.justobjects.pushlet.servlet.Pushlet中已经将request参数传进了Session(注意是nl.justobjects.pushlet.core.Session)。但是在session构造的时候没有用到request。看到这里,就大概知道改怎么改了。代码如下: 1. nl.justobjects.pushlet.core.Session,添加了event域和getEvent()方法,修改了public static Session create(String anId, Event anEvent)方法 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 = anId; session.controller = Controller.create(session); session.subscriber = Subscriber.create(session); session.event = anEvent; return session; } 2. nl.justobjects.pushlet.core.SessionManager,修改了createSession()方法 /** * Create new Session (but add later). */ public Session createSession(Event anEvent) throws PushletException { // Trivial return Session.create(createSessionId(), anEvent); } 3. ajax-pushlet-client.js,PL添加了parameters属性,修改了_doRequest函数,在函数的最后加了如下一段: if(PL.parameters.length > 0) { for (var i = 0; i < PL.parameters.length; i++) { var para = PL.parameters[i]; url += "&" + para.name + "=" + para.value; } } 好了,源代码修改完毕,下面是一个如何传递参数的例子 在页面上js代码: // pushlet服务器推送,更新实时监控模块 var initPushlet = function() { PL.parameters.push({"name":"user-id", "value":"001"); PL._init(); PL.joinListen('/source/event'); }; 在HelloWorldPlushlet的pullEvent()方法调用: Session[] sessions = SessionManager.getInstance().getSessions(); String userId = sessions[0].getEvent().getField("user-id");