Spring mvc + pushlet实现向特写用户实时推送信息

本文介绍如何在Pushlet框架中实现针对特定用户的推送功能,通过修改ajax-pushlet-client.js和SessionManager源码,使用用户ID创建Session。同时,讲解了在推送源配置中手动获取Spring Service的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                环境:pushlet-2.0.4 
所遇问题: 
1.如何向特定用户推送 
参考网上资料: http://tonl.iteye.com/blog/1398995  
首先:修改ajax-pushlet-client.js,在PL对象后加入userId:  

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var  PL = {
     NV_P_FORMAT:  'p_format=xml-strict' ,
     NV_P_MODE:  'p_mode=pull' ,
     pushletURL:  null ,
     webRoot:  null ,
     sessionId:  null ,
     STATE_ERROR: -2,
     STATE_ABORT: -1,
     STATE_NULL: 1,
     STATE_READY: 2,
     STATE_JOINED: 3,
     STATE_LISTENING: 3,
     state: 1,
     userId:  '' , //添加的userId变量
其次:修改pushlet源码,nl.justobjects.pushlet.core.SessionManager,将createSession方法修改如下:  

复制代码
1
2
3
4
5
6
7
8
/**
      * Create new Session (but add later).
      */
     public  Session createSession(Event anEvent)  throws  PushletException {
         // Trivial
         //return Session.create(createSessionId()); //原写法
         return  Session.create(anEvent.getField( "userId" "visitor" )); //修改后的写法
     }
这是我们就获得的session的id就是我们传送过来的登陆用户userId,getField的第二个参数是当得不到请求参数userId的值的时候设定的默认值。 


最后:对修改过的源码进行编译打包  
编择:直接到下载的pushlet包下build 
打包:通过jar命令 
 



2.如何在配置的推送源中获取service对象 
参考: http://blog.youkuaiyun.com/zollty/article/details/8710911  
因为pushlet是在服务端做的轮询,并不经web容器,所以不能自动注入,要手动获取 ,方法如下:  

复制代码
1
2
3
4
5
6
applicationContext = sessions.length >  0  && applicationContext ==  null  ?
                     ContextLoaderListener.getCurrentWebApplicationContext()
                     : applicationContext;
renwuService = sessions.length >  0  && renwuService ==  null  ?
                     (IRenwuService) applicationContext.getBean( "renwuServiceImpl" )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值