• 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

  • 相关阅读:
    诸葛马前课andoid app 应用
    C#读写文件总结
    C#写的较完美验证码通用类
    利用C#转换图片格式及转换为ico
    集合&gt;哈希表类Hashtable和SortedList排序列表类
    C# 4.0 新特性dynamic、可选参数、命名参数等
    String.Format格式说明
    C# 4动态编程新特性与DLR剖析
    C#中const和readonly的区别
    2014年7月阅读链接
  • 原文地址:https://www.cnblogs.com/siyu/p/3811454.html
Copyright © 2020-2023  润新知