2009年11月25日 星期三

Ext JEE Bridge 開發日記4

開發完 remoting 與 form post兩個部分後,
就只剩下polling的部分.
但是看過官網的範例並參考其他實作的作法後, 感想如下:
  1. 官網的作法感覺太過原始, 簡單到只是Browser端不斷送出Request到一個URL, 直接寫一個JSP/Servlet就解決了, 感覺不出像remoting與form post那樣的好處.
  2. DirectJNgine的做法又只不過是不斷呼叫action類別中的method. 跟用一個timer不斷的用Ext.Direct的rpc呼叫有啥不同?
總之我覺得實作polling的基本server-side功能根本是多餘的.
反而用polling來實作一些更高階的功能, 如從Server端fireEvent給特定的Browser端之類的, 還比較實用.
因此我就在Ext JEE Bridge中加入了DirectEventPublisher功能.
開發者可以透過DirectEventPublisher觸發目前Browser端或是所有的Browser端的Ext.Direct事件.
基本概念很簡單, Browser端的GET Request可以取得PollingAPI並訂閱DirectEventPublisher的事件. 然後用POST Request對DirectEventPublisher進行Polling取得DirectEventPublisher publish給Browser端的事件.
最後Server內的程式只要DirectEventPublisher.publish('eventName',arg1,arg2,arg3,...);
目前ejeeb-1.0已具備此功能.

沒有留言:

張貼留言