zoukankan      html  css  js  c++  java
  • pushlet服务端推送——多播

    版权声明:本文为博主牟云飞原创文章。未经博主同意不得转载。

    https://blog.csdn.net/myfmyfmyfmyf/article/details/36364337

    ---------------------在jsp页面中增加---------------------- 

    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <base href="<%=basePath%>">
    //从官网下载
    <script type="text/javascript" src="<%=path%>/cc/util/js/ajax-pushlet-client.js"></script>
    <script type="text/javascript">

    PL._init();

    //监听mutiSend时间。mutiSend是我定义的
    PL.joinListen('/mutiSend');
    function onData(event) {
    try{

    //读取内容
    var context=event.get("msg");

    //解决汉字乱码问题
    context=decodeURIComponent(context);
    if(null!=context&&"undefined"!=context){
    //var a=document.getElementById("contex");
    //a.innerHTML=context;
    pushInfoShowDiv(context);
    }
    }catch(e){
    }
    // 离开
    // PL.leave();
    }
    </script>


     

    --------------------------web.xml文件里增加

      <!-- pushlet -->
      <servlet>
    		<servlet-name>pushlet</servlet-name>
    		<servlet-class>nl.justobjects.pushlet.servlet.Pushlet</servlet-class>
    		<load-on-startup>3</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>pushlet</servlet-name>
    		<url-pattern>/pushlet.srv</url-pattern>
    	</servlet-mapping>


     

    ------------------------java文件-----------------

    //向全部和****名称匹配的事件进行推送
    	public void mutiSend(){
    		
    		try {
    			//获得数据
    			List<RemindInfo> list = retrieve(null,null,null,null,null);
    			String remindContent="";
    			if(null!=list&&0!=list.size()){
    				remindContent=list.get(0).getRemindContent();
    			}
    			Event event =Event.createDataEvent("/mutiSend");
    			event.setField("msg", URLEncoder.encode(remindContent+"<br/>推送时间:"+new Date().toLocaleString(),"UTF-8"));//解决乱码
    			Dispatcher.getInstance().multicast(event);
    		} catch (UnsupportedEncodingException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}


     假设须要页面点击发送,然后推送给各个客户端。在action或者servlet中增加

     Event event =Event.createDataEvent("/mutiSend");

    event.setField("msg", URLEncoder.encode(remindContent+"<br/>推送时间:"+new Date().toLocaleString(),"UTF-8"));//解决乱码

    Dispatcher.getInstance().multicast(event);

    这三句代码就可以

    ------------效果-------------

  • 相关阅读:
    航班预定统计(差分数组+前缀和)
    救生艇
    Xcode 的正确打开方式——Debugging
    多次页面跳转后pop回主界面的问题
    理解Bitcode:一种中间代码
    使用AFNetWorking读取JSON出现NSCocoaErrorDomain Code=3840的解决方法
    No identities are available for signing的解决方法
    Aufree/trip-to-iOS
    Alcatraz -- 一个神奇的管理插件的Xcode插件
    GenericKeychain
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10554392.html
Copyright © 2011-2022 走看看