ZK Server Push实现数据主动推送
来源:互联网 发布:大数据为什么在贵阳 编辑:程序博客网 时间:2024/04/30 22:41
由于业务部门需要将现有系统的WebService中的利率,鉴于C/S客户端的维护性,因此使用了B/S的结构,框架选择了较为熟悉的ZK.主要使用了ZK较早的Server Push技术实现数据的主动推送。由于WebService是基于vb.net开发,这里的客户端就偷懒使用了Axis2直接生成的方式了~接下来就是非常简易的在ZK中调用该客户端,主要代码如下
class UpdateRunnable implements Runnable {
boolean running = false;
int maxRatio = 10;public void run() {running = true;while (running) {synchronized (stockModel) {clearAll();if (params) {//用于查询try {MarketStub fms = new MarketStub();GetXmlCNYFWD_Point xmlCnyfwdPt = new GetXmlCNYFWD_Point();xmlCnyfwdPt.setCcy(sccy);xmlCnyfwdPt.setPair(spair);Iterator it = fms.getXmlCNYFWD_Point(xmlCnyfwdPt).getGetXmlCNYFWD_PointResult().getExtraElement().getChildElements();while (it.hasNext()) {OMElement ome = (OMElement) it.next();String exCode = ome.getFirstChildWithName(new QName("CNYFWDPoint_Code")).getText();Double exBid = Double.valueOf(ome.getFirstChildWithName(new QName("Bid")).getText());Double exAsk = Double.valueOf(ome.getFirstChildWithName(new QName("Ask")).getText());String dt = ome.getFirstChildWithName(new QName("InputDate")).getText();CnyfwdPtInfo exRt = new CnyfwdPtInfo(exCode, exBid,exAsk, dt);stockModel.add(exRt);// ListModelList stockModel;}} catch (AxisFault e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}} else {try {MarketStub fms = new MarketStub();GetAllCNYFWD_Point allCnyfwdPt = new GetAllCNYFWD_Point();Iterator it = fms.getAllCNYFWD_Point(allCnyfwdPt).getGetAllCNYFWD_PointResult().getExtraElement().getChildElements();while (it.hasNext()) {OMElement ome = (OMElement) it.next();String exCode = ome.getFirstChildWithName(new QName("CNYFWDPoint_Code")).getText();Double exBid = Double.valueOf(ome.getFirstChildWithName(new QName("Bid")).getText());Double exAsk = Double.valueOf(ome.getFirstChildWithName(new QName("Ask")).getText());String dt = ome.getFirstChildWithName(new QName("InputDate")).getText();CnyfwdPtInfo exRt = new CnyfwdPtInfo(exCode, exBid,exAsk, dt);stockModel.add(exRt);}} catch (AxisFault e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (RemoteException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}try {Thread.currentThread().sleep(90000);} catch (InterruptedException e) {running = false;}}}}页面部分代码<zk><zscript>import com.living.data.cnyfwdpt.*;if(!desktop.isServerPushEnabled()){desktop.enableServerPush(true);}CnyfwdPtUpdateService service = CnyfwdPtUpdateService.lookup();ListModelmodel= service.getProxy(desktop);CnyfwdPtItemRendererrenderer = newCnyfwdPtItemRenderer();</zscript><groupbox width="1000px"><caption label="Live CNYFWD Point " /><listbox model="${model}" itemRenderer="${renderer}" mold="paging"pageSize="25" vflex="true"><listhead><listheader label="CNYFWDPt Code" width="100px"style="font-size : large;font-weight : bold;text-align:center;color:blue" /><listheader label="Bid"style="font-size : large;font-weight : bold;text-align:center" /><listheader label="Ask"style="font-size : large;font-weight : bold;text-align:center" /><listheader label="QuoteDate"style="font-size : large;font-weight : bold;text-align:center" /></listhead></listbox></groupbox></zk>主页面代码<?page title="Live Rate V 2.0 " contentType="text/html;charset=UTF-8"?><window id="main" title="Live Rate V 2.0 "><vbox><tabbox><tabs><tab label="ExchangeRate" /><tab label="InterestRate" /><tab label="SwapPoint" /><tab label="CNYFWDPoint" /></tabs><tabpanels><tabpanel><include src="exchangeRt.zul" /></tabpanel><tabpanel><include src="interestRt.zul" /></tabpanel><tabpanel><include src="swapPt.zul" /></tabpanel><tabpanel><include src="cnyfwdPt.zul" /></tabpanel></tabpanels></tabbox></vbox></window>程序效果图
- ZK Server Push实现数据主动推送
- 服务器端主动推送PUSH
- 服务器推送(Server Push)
- 推送技术server push
- AJAX 服务端主动推送数据
- android实现主动推送小结
- android实现主动推送小结
- 消息推送(Server Push)
- redis主动向页面push数据
- Flume数据推送(Push)
- pushlet 服务器主动推送数据到客户端
- phonegap push-消息推送实现
- 运用Comet技术实现服务端往客户端主动推送数据(结合redis发布/订阅)
- WebSocket实现主动推送交互【编辑中】
- 服务器推送技术(Server Push)详解
- 服务器推送技术(Server Push)详解
- asp.net 服务器推送(Server Push)
- 服务器推送技术Server Push详解
- uvaoj 488 - Triangle Wave
- 用汇编编写DOS下的内存驻留程序
- 列出一个HTML文件的所有标签
- ClojureScript通过Javascript将Clojure引入到浏览器端
- 使用"adb install"命令无法在真机上安装Google maps demo的解决办法
- ZK Server Push实现数据主动推送
- Linux内核定时器
- 分析mtk6516如何加入自己的驱动
- 用java语言解释爱情
- 创建TreeView控件,响应NM_CLICK消息得到当前点击的节点的信息(SDK版本)
- 在VMware中为RedHat Enterprise Linux 5安装VMware tools
- C++学习---------------string类和标准模板库
- PackageManager分析(4)
- man手册入门