pushlet 2.0.3 集成 到你的 web 項(xiàng)目中 教程 例子文章分類:Web前端1、把pushlet.jar放到 WebRoot\WEB-INF\lib下,添加進(jìn)classpath
2、把pushlet.properties,sources.properties放到 WebRoot\WEB-INF下,一個(gè)是pushlet的配置文件,一個(gè)是事件源的配置文件,如果沒有用到她的事件源可以不要sources.properties,我用到了他的“/pushlet/ping”事件來保持響應(yīng),所以我加了
3、添加pushlet 的ajax客戶端js文件到你的項(xiàng)目中 ajax-pushlet-client.js,并在用到的頁面引入,這個(gè)文件封裝了一些ajax訪問的方法,用他提供的接口可以很方便的發(fā)布消息,訂閱消息,至于他提供了什么方法,要看這個(gè)js文件的代碼,很簡單的,就700行,一看就懂,pushlet的源碼也是,其實(shí)pushlet框架就是一個(gè)人寫的,相當(dāng)小型的框架,這個(gè)js文件里默認(rèn)是把 PL._init() 方法和window的onload綁到一起了,和ext一起用的時(shí)候起沖突了,所以后來我把他注掉了,就在文件的最后一行, 然后在我用到pushet的時(shí)候在我自己的js代碼里面先執(zhí)行PL._init() ,然后才開始PL.joinListen('/pushlet/ping'),這個(gè)PL就是pushlet的客戶端js對象
4、在你的web.xml里添加pushlet的servlet,這個(gè)是用來給ajax訪問用的
<servlet> <servlet-name>pushlet</servlet-name> <servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- Define the Servlet Mappings. --> <!-- The pushlet --> <servlet-mapping> <servlet-name>pushlet</servlet-name> <url-pattern>/desktop/pushlet.srv</url-pattern> </servlet-mapping> 這里需要注意的一點(diǎn)是,上面我映射的是/desktop/pushlet.srv,那是因?yàn)楫?dāng)時(shí)我引用ajax-pushlet-client.js的頁面是http://localhost:8080/myproject/desktop/desktop.html ,在ajax-pushlet-client.js中,默認(rèn)定義的訪問地址是 PL.pushletURL = PL._getWebRoot() + 'pushlet.srv'; 在我的應(yīng)用中,他去訪問的就是/myproject/desktop /pushlet.srv,最開始我寫的是/pushlet.srv,出錯(cuò)了,才改成/desktop/pushlet.srv的,所以你在不同的頁面調(diào)用時(shí),要注意映射路徑 當(dāng)然你也可以再PL初始化后在去改PL.pushletURL,這是公共屬性,應(yīng)該可以改的,然后寫一個(gè)固定的url-pattern去訪問
上面都配好后,就可以再你的頁面中使用pushlet的方法了,主要是使用PL對象,使用前先PL._init(),然后怎么用就得看文檔,看例子了,我寫了一個(gè)簡單的列子就是在頁面中調(diào)用 PL._init(); '/pushlet/ping'事件是pushelt自己的一個(gè)事件源例子,我調(diào)用的就是他,會每隔幾秒就發(fā)個(gè)事件給客戶端
pushlet事件接受的時(shí)候會對窗口的狀態(tài)欄寫信息,看到這些就知道當(dāng)前的pushlet的運(yùn)行狀態(tài)了
等待消息中
接受數(shù)據(jù)中
下面是我的列子
下面有完整的列子下載
這個(gè)列子相當(dāng)簡單,要看復(fù)雜的看我javaeye博客上自己寫的一個(gè)bsIM的即時(shí)聊天工具的列子,上面對于怎么調(diào)用pushelt 的ajax客戶端方法有比較多的例子,注釋也算詳細(xì)
|
|
|