首页 > 代码库 > SSH集成Pushlet

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