zoukankan      html  css  js  c++  java
  • SSH集成Pushlet

    首先是需要的资源:

    1)、pushlet.jar

    2)、ajax-pushlet-client.js

    第一步、web.xml配置servlet

      <servlet>
        <servlet-name>pushlet</servlet-name>
        <servlet-class>com.newgsn.tvmall.pushlet.servlet.Pushlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>pushlet</servlet-name>
        <url-pattern>/pushlet.srv</url-pattern>
      </servlet-mapping>

    Pushlet类自定义类,继承自nl.justobjects.pushlet.servlet.Pushlet.java
    第二步、创建自定义的Pushlet类

    初始化pushlet,并注入applicationContext

    public class Pushlet extends nl.justobjects.pushlet.servlet.Pushlet {
    
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        public void init() throws ServletException {
            super.init();
            
            ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
            SessionManager.getInstance().initApplicationContext(ctx);
        }
    
    }

    第三步、创建推送消息工具类

    public class PushletUtil {
        
        private static String PLATFORM_MESSAGE = "UNI_CAST_MESSAGE";
        
        /**
         * 发送消息至客户端
         * @param sessionId
         * @param msg
         */
        public static void sendMessage(String sessionId, String msg){
            if(StringUtils.isNotBlank(sessionId) && SessionManager.getInstance().hasSession(sessionId)){
                Event event = Event.createDataEvent("message");
                event.setField(PLATFORM_MESSAGE, msg);
                Dispatcher.getInstance().unicast(event, sessionId);
            }
        }
        
        /**
         * 广播至所有在线客户端
         * @param msg
         */
        public static void sendBroadcast(String msg){
            Event event = Event.createDataEvent("message");
            event.setField(PLATFORM_MESSAGE, msg);
            Dispatcher.getInstance().broadcast(event);
        }
    }

    实现点对点推送和广播推送
    第四步、jsp页面接收消息

    PL._init();
    PL.userId='qinfx';  
    p_join_listen("message");
    function onData(event) {   
        if(event.get('UNI_CAST_MESSAGE') != undefined ) {
            alert(event.get('UNI_CAST_MESSAGE'));    
        }
        if(event.get('UNI_LOGOFF') != undefined ) {
            alert(event.get('UNI_LOGOFF'));
        }
    }

    PL.userId为当前登录用户的id

  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/siyu/p/3811454.html
Copyright © 2011-2022 走看看