com.ixintui.push.tkmessage是什么文件?

博客分类:
最近使用pushlet做了一个新消息及时提醒的功能。我使用的框架是Spring + Spring MVC + MyBatis,没有仔细研究其原理,只是简单的将其整合到我的项目中。下面总结一下使用步骤,将来使用的时候也可以再参考一下。
1、从官网下载pushlet的压缩包(版本为:pushlet-2.0.4);
2、将pushlet.jar(目录为:pushlet-2.0.4\lib)拷贝到lib目录下;
3、解压,并将pushlet.properties和sources.properties(目录为:pushlet-2.0.4\webapps\pushlet\WEB-INF\classes\)两个文件拷贝到我们自己项目的WEB-INF目录下。其中pushlet.properties不需要修改,而sources.properties稍后需要根据实际情况调整;
4、在web.xml中加入如下配置:
&servlet-name&pushlet&/servlet-name&
&servlet-class&nl.justobjects.pushlet.servlet.Pushlet&/servlet-class&
&load-on-startup&3&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&pushlet&/servlet-name&
&url-pattern&/pushlet.srv&/url-pattern&
&/servlet-mapping&
其中&url-pattern&/pushlet.srv&/url-pattern&使用默认配置。
5、创建一个Controller,里面有一个静态的内部类,需要继承自nl.justobjects.pushlet.core.EventPullSource类。由于,我在页面中弹出的提醒消息需要通过数据库获取,所以,在Controller中需要有相关的参数。具体代码如下:
package com.sinowel.ucp.multimessage.
import java.util.ArrayL
import java.util.L
import java.util.M
import org.slf4j.L
import org.slf4j.LoggerF
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.C
import com.sinowel.ucp.multimessage.domain.MultiM
import com.sinowel.ucp.multimessage.service.AbstractMultiMessageS
import nl.justobjects.pushlet.core.E
import nl.justobjects.pushlet.core.EventPullS
* 类描述: 新消息提醒控制器 修改历史:
* @author weina
上午10:11:12
* @description 其它:
@Controller
public class PendingMessageTipController {
private static final Logger logger = LoggerFactory.getLogger(PendingMessageTipController.class);
private static AbstractMultiMessageService mulitMessageS
public static AbstractMultiMessageService getMulitMessageService() {
return mulitMessageS
@Autowired
public void setMulitMessageService(
AbstractMultiMessageService mulitMessageService1) {
mulitMessageService = mulitMessageService1;
static public class PendingMessageTipPlushlet extends EventPullSource {
// 休眠10秒
protected long getSleepTime() {
return 10000;
protected Event pullEvent() {
Event event = Event.createDataEvent("/getNewMessage");
MultiMessage multiMessage = new MultiMessage();
multiMessage.setDestAgentId("admin");
multiMessage.setStatus("0");
List&Map&String, Object&& list = new ArrayList&Map&String, Object&&();
String tipMessage = "";
// 此处省略业务代码
event.setField("message", new String(tipMessage.getBytes("UTF-8"), "ISO-8859-1"));
} catch (Exception e) {
if (logger.isDebugEnabled())
e.printStackTrace();
logger.info(e.toString());
6、修改sources.properties文件,将source1修改为:
source1=com.sinowel.ucp.multimessage.controller.PendingMessageTipController$PendingMessageTipPlushlet
其他的source全部删除掉。
7、将ajax-pushlet-client.js引入文本项目,如WebContent\js\;
8、在需要弹出消息窗口的页面引人ajax-pushlet-client.js文件;此处需要说明一下,使用前在网上也查找过一下资料,可以参考。首先修改_getWebRoot函数:
// index = src.indexOf("lib");
index = src.indexOf("js");
但是都不能实现我需要的功能——在非WebContent\index.jsp页面弹出提示窗口,而是在WebContent\WEB-INF\view\jsp\XXX\XXX.jsp页面上弹出提示窗口(这个是我的web项目的首页)。使用网上的资料时,在WebContent根目录下的jsp页面中可以实现很轻松的实现弹出窗口效果。但是在我的WebContent\WEB-INF\view\jsp\XXX\XXX.jsp页面,一直不出现。最后查看了一下ajax-pushlet-client.js的源码。发现_onEvent方法中有如下内容:
if (eventType == 'data') {
PL._setStatus('data');
PL._doCallback(event, window.onData);
我使用的eventType是data类型的,所以其他的没关注。发现它回调的函数是window.onData。而我的WebContent\WEB-INF\view\jsp\XXX\XXX.jsp页面上的onData函数
PL._init();
PL.joinListen('/getNewMessage');
function onData(event) {
showMessage(event.get("message"));
却一直无法调用。所以,我修改了ajax-pushlet-client.js的源码:增加一个fun变量用来保存要执行的自定义函数,增加setFun和getFun两个函数分别用来设置和获取自定义函数。具体内容如下:
var PL = {
NV_P_FORMAT: 'p_format=xml-strict',
NV_P_MODE: 'p_mode=pull',
pushletURL: null,
webRoot: null,
sessionId: null,
// add by weina begin
fun : null,
// add by weina end
/************** START PUBLIC FUNCTIONS
**************/
// add by weina begin
setFun : function(funName) {
fun = funN
getFun : function () {
// add by weina end
_onEvent函数修改内容如下:
_onEvent: function (event) {
// Create a PushletEvent object from the arguments passed in
// push.arguments is event data coming from the Server
PL.debug('_onEvent()', event.toString());
// Do action based on event type
var eventType = event.getEvent();
if (eventType == 'data') {
PL._setStatus('data');
// modify by weina begin
PL._doCallback(event, window.onData);
PL._doCallback(event, PL.getFun());
// modify by weina end
} else if (eventType == 'refresh') {
修改之后,在需要调用的页面中的js做如下修改:
$(function(){
PL._init();
PL.joinListen('/getNewMessage');
PL.setFun(onData);
function onData(event) {
var tipMessage = event.get("message");
if(tipMessage != undefined && tipMessage != ""){
showMessage("收到新消息:【" + tipMessage + "】");
这样就可以将自定义的函数传入并执行了。程序运行后的效果见附件图片。每10秒钟在右下角弹出一次提醒窗口。
不知道是我研究的不够深入,没有真正弄明白pushlet的使用方式,还是它真的存在这样的问题。在实际应用中可能大部分提示页面都在首页进行,只不过我的项目特殊,首页不在WebContent根目录下。希望能为遇到同样问题的朋友们提供一些帮助。
下载次数: 115
heweina2007
浏览: 50905 次
来自: 沈阳
如果推送消息的JSP页面是通过IFRAME引入的话,就没办法弹 ...
使用了楼主的方式还是不行啊。
为什么OnData收不到消息呢?在后台打了断点,已进入pull ...
嗯,设置参数的确可以搞定
为什么按照你的方法,同时打开两个浏览器,userid不同,只有 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'MyAndroidTools通用禁用法则
我的图书馆
MyAndroidTools通用禁用法则
以下是个人总结出来的MAT对于各种毒瘤软件的禁用的大致方法,  基本能够适用国产大部分毒瘤的禁用,但在此声明,对于系统软件、日常重要软件(如QQ、微信、支付宝)、工作需要软件的禁用参考此法则请慎重处理,出现问题本人概不负责。  首先列出以下服务,随便在那个软件里面看见都能直接禁用  XMPushService  XGPushService  XGRemoteService  UmengIntentService  UmengLocalNotificationService  UmengMessageCallbackHandlerService  UmengMessageIntentReceiverService  UmengService  PollService  DebugService  ReportService  GetuiExtService  Yolanda  AnalyticeService  DefaultService  NBCacheService  XstateService  OpenUDID  MoPlusService  RollFloatService  ElectionService  下面列出一些关键字,在软件内看见有此关键字的服务也能直接禁用  Daemon  Ad/Ads(万恶的广告服务,需要MAT Pro版才能禁用)  log  Monitor  首先介绍一下展开后的全名分析    例如com.baidu.android.pushservice.CommandService  com.xiaomi.mipush.sdk.MessageHandleService  第一个词基本都是com不用管他  第二个词即是软件的厂商例如baidu,qq,有些则没有这个,直接被跳过  第三个有些是android,sdk有些则是这个服务的大致分类如mipush  第四个有些是android,sdk有些则是这个服务的大致分类如pushservice  第五个则是我们在没有展开前看到的服务名称  注:有些服务会有6个词,在3和4中间或前后会多出一个,有些服务则只有4个词,但并不影响分析,这一块需要自行领悟。  了解了这些我们就能总结出一条规律:软件禁用的时候非本软件厂商的服务大多都能禁用  例如UC浏览器内出现了第二个词为sina厂商的服务,那么这条服务肯定是可禁的  以下几条服务需要展开核对全名相同后再进行禁用  CommandService(com.baidu.android.pushservice.CommandService)  DownloadingService(com.umeng.update.net.DownloadingService)  MessageHandleService(com.xiaomi.mipush.sdk.MessageHandleService )  PushMessageHandler (com.xiaomi.mipush.sdk.PushMessageHandler )  下面按功能需求进行分类,大家可以各自按对软件所需的功能进行禁用  无需下载功能类  DownloadService  DownloadingService  DownloadProviderService  无需推送类  NotifyService  NotificationService  PushService  MessageService  PushMsgService  无需浮动窗口类 FloatWindowService  无需分享类 ShareService  无需定位 f APSservice  无需扫描SD卡或同步类 SyncService  无需谷歌服务类 GCM(带此关键词的即可禁用)  无需桌面插件类 Widget(带此关键词的即可禁用)  无需更新类 Update(带此关键词的即可禁用)  无需备份类 Backup(带此关键词的即可禁用)  无需上传类 Upload(带此关键词的即可禁用)  下面介绍遇到多个同名服务的时候,或者感到无从下手的时候,这时就需要用到展开看服务全名的方法,下面以迅雷软件为例  这么多DownloadService是不是感到不知道禁用哪个    这时你点击展开按钮,就会一目了然,你是迅雷啊喂  sina和qq的DownloadService乱入什么,xiaomi你push什么  还有倒数第三条在看全名时名为PluginProxyService  展开后就能知道它是属于DLNA功能插件的一个服务    上一篇:『调教心得』发帖规则  下一篇:MyAndroidTools组件整理   收藏 支持 反对  1楼点评  tyc600 前天 20:45  禁用UmengMessageCallbackHandlerService会导致weico分享到印象笔记EverNote失败。     来自 30#gang4399   00:09:15  本帖最后由 gang4399 于
13:25 编辑  关键词搜索我一般是服务,活动,广播,内容提供(少量会影响到程序)展开全称搜:  xiaomi  umeng  gexin  ixintui  getui  agoo  huawei  push(有些需要保留,要观察)  以上为推送,统计,广告定制之类;  ads/adv/ad(有点多,大面积搜一般不用ad关键字,都要识别)  (有一个谷歌gms.ads.adactivity活动,在有些程序中会出现红字提醒,如果你是hosts,破解,付费去广告了的,这个不禁反而避免红字)  Google  gms  fyber  (上面这几个对于国产阎割机/墙机可以去搜索下,对于多数付费免费的程序都没关系,但部分需通过幸运破解器之类假购买的可暂时开放,之后再禁。需要慎重!配合实际所处环境 软件版本性质,想达成目标来定)  alimama  alibaba  以上为广告  其他自己总结出来的都可以,全选或多选禁用时候识别一下;  每次软件更新后去查看一小段时间后就会发现适合自己的规律,  对于不相关的:  看软件性质和功能,诸如sina.weibo qq.e wxentry alibaba等 ,除了部分属于内置三方账号登录和分享便利功能,可禁用。且不少程序已做成外部调用,通过程序的其他活动也可直接调取分享页面,当然影响到分享效果可以尝试恢复下。但百度视频里出现一个sohuVideo这种不禁为好。  其他:  recommend/commend 推荐应用,  关键字silence,autoinstall(autosilence/silenceinstall),静默安装,通常伴随
TA的最新馆藏
喜欢该文的人也喜欢pushmessagereceiver怎么解决_百度知道
pushmessagereceiver怎么解决
我有更好的答案
libbdpush_V2_2.so 两个文件夹放在了 &#47,仔仔细细按照文档一步一步做完。但是测试的时候,就是回调不了今天准备集成百度云推送,因为据朋友说。最后在百度云应用管理详情中,原来这个是jni啊;main/jniLibs目录下。但是官方文档说的是!立即把这两个so文件夹改变了位置,正常运行,百度云推送作为android的推送还是相对稳定的。开发工具.jar一起复制到/app/libs目录下的啊?,最后发现只有一处不同:armeabi/libbdpush_V2_2.3立即下载了最新的V4.so和mips&#47,看见了“生成快速示例的按钮”,生成之后安装,直接和pushservice-4.4.0.71;src&#47.4;app&#47,发现可以正常使用。于是开始研究这个快速示例.1版本的百度云推送demo:android studio 1.2.1.1
系统:Mac os x 10.10
电脑网络爱好者
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 ixintui文件夹 的文章

 

随机推荐