JAVA-向页面定时推送信息

使用Quartz触发器加dwr推送技术(服务器推送技术,Server push)完成,直接用实例说明:

1、先看配置:


    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    

   

    warnEventPushScanJob"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        warnEventPushScanAction
" />
        scanWarnEvent
" />
        

    
    
    warnEventPushScanTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        warnEventPushScanJob
" />
        0/5 * * * * ?
" />
    

    
    
    
        
            
                warnEventPushScanTrigger
" />
            
        
     

2、看进入的方法及数据推送

public class WarnEventPushScanAction extends QueryManageAction { 

 private AlarmVideoCirculateAction alarmVideoCirculateAction;  

 public void scanWarnEvent() {

/*这里是你的逻辑*/

            alarmVideoCirculateAction.callDWRPageJSFunctionForIndexPage(list);

 }

}

public class AlarmVideoCirculateAction extends WebPushAction{
    @SuppressWarnings("deprecation")
    public static int callDWRPageJSFunctionForIndexPage(List smsJsons) {

//参数1是接收数据的页面,参数2是页面的js方法,参数三是传过去的数据
        callDWRPageJSFunction("monitorVideo/HCVSM/alarmVideoCirculateH.jsp", "setAlarmVideoData", smsJsons);
        return 0;
    }
    /**
     * pushPage为推送的页面
     * callBackMethod为js方法
     * @param pushPage
     * @param callBackMethod
     * @param smsJsons
     * @return
     */
    @SuppressWarnings("deprecation")
    public static int callDWRPageJSFunction(String pushPage, String callBackMethod, List smsJsons) {
        int result = -1;
        if (contex != null) {
            //得到要推送到 的页面 dwr3为项目名称 , 一定要加上。
            if (projectName == null || projectName.equals("")) {
                projectName = getProjectName();
            }
            String page = projectName + pushPage;
            Collection sessions = contex.getScriptSessionsByPage(page);    
            Iterator it = sessions.iterator(); 
            while (it.hasNext()) {
                ScriptSession session = (ScriptSession) it.next();
                Util util = new Util(session);
             
   //回调js方法,callBackMethod:方法名,callBackParameter:回调参数
                util.addFunctionCall(callBackMethod, smsJsons);
            }
            result = 1;
        }
        return result;
    }    

    }

 

你可能感兴趣的:(Java)