Openfire 多人聊天室 消息记录的问题 本帖最后由 Lvmodel 于 2013-09-27 15:30:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sharepreference 只保存一条信息,如果断电的话,一般所有的设备都会有备用小电源,可以顶0.1秒左右,完全够你保存数据的。 楼主你说,怎么让不获取聊天室以前的消息记录,其实可以通过 // 聊天室服务将会决定要接受的历史记录数量DiscussionHistory history = new DiscussionHistory();history.setMaxChars(0);但是这样一来就无法获得聊天室离线消息,楼主的意思应该不是这样。DelayInformation inf = (DelayInformation) message.getExtension("x", "jabber:x:delay"); if(if!=null){//旧消息}但是旧消息又分为已经读取的和未读取的,楼主应该是只希望获取旧消息中未读取的。我也刚好遇到此问题,可以如下解决每个消息都有一个消息id(如:<message id="GSpj0-51" to="admin"/>)读取消息信息后保存至本地,下次拉取到旧消息根据此id,如果本地不存在,进行拉取 // 聊天室服务将会决定要接受的历史记录数量 DiscussionHistory history = new DiscussionHistory(); history.setSince("2014-03-25 12:00:00"); // 创建聊天室,进入房间后的nickname(昵称) try { muc.join(Consta.app_xmpp_service_localName, "", history, SmackConfiguration.getPacketReplyTimeout());这种方式可以取指定时间之后的历史消息 通过变通一下即可 取未读历史信息 history.setStanza(0);加上这个,可以控制聊天室历史消息的条数 学习android游戏开发是不是必须学习opengl android 判断快捷方式问题 【地图气泡/地图标记】在地图缩放后有漂移(不用google api的) android传字符串给PHP,可是PHP为什么解析出来是乱码 什么情况下赋值语句会不执行?? 摄像头video分辨率设置问题 Android初学者 Android如何实现对SQLite数据库的操作? APP A会启动B,我想监听后把B换成C去启动,求思路 为什么小米手机“正常退出APP后,再看别软件时,APP还会自动弹出” 布局报了很多错但是不知道问题在哪里,谁能指点一下 如何真正获取本机号码
// 聊天室服务将会决定要接受的历史记录数量
DiscussionHistory history = new DiscussionHistory();
history.setMaxChars(0);
但是这样一来就无法获得聊天室离线消息,楼主的意思应该不是这样。
DelayInformation inf = (DelayInformation) message.getExtension("x", "jabber:x:delay");
if(if!=null){//旧消息}
但是旧消息又分为已经读取的和未读取的,楼主应该是只希望获取旧消息中未读取的。
我也刚好遇到此问题,可以如下解决
每个消息都有一个消息id(如:<message id="GSpj0-51" to="admin"/>)
读取消息信息后保存至本地,下次拉取到旧消息根据此id,如果本地不存在,进行拉取
// 聊天室服务将会决定要接受的历史记录数量
DiscussionHistory history = new DiscussionHistory();
history.setSince("2014-03-25 12:00:00");
// 创建聊天室,进入房间后的nickname(昵称)
try {
muc.join(Consta.app_xmpp_service_localName, "", history,
SmackConfiguration.getPacketReplyTimeout());
这种方式可以取指定时间之后的历史消息
通过变通一下即可 取未读历史信息