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

  • 相关阅读:
    VMware workstation 无法连接到虚拟机
    windows10彻底卸载sql server2017
    MySQL 8.0.19安装教程(windows 64位)
    IntelliJ IDEA 编译程序出现 非法字符 的 解决方法
    IDEA手动增加lib目录
    Idea Svn 导出代码
    intellij idea设置打开多个文件显示在多行tab上及设置 tab上打开文件的上限
    IDEA工作空间多开项目教程,多个项目放在一起
    SpringBoot+Shiro引起事务失效、错误原因、解决方法
    flex:1;的含义
  • 原文地址:https://www.cnblogs.com/siyu/p/3811454.html
Copyright © 2011-2022 走看看