你不需要详细了解服务器端离线消息是怎么保存的,你要做机器人,需要的是登陆一个jabber帐号,然后侦听
你感兴趣的消息类型,然后做对应的响应就行了,消息是属于Packet类型的,所以你主要侦听该类型消息即可。
从该消息中,你可以获得该消息从哪里来的,简单的,你将消息的主体解析出来,原样发回去给他,就形成一个
xmpp机器人了。
你感兴趣的消息类型,然后做对应的响应就行了,消息是属于Packet类型的,所以你主要侦听该类型消息即可。
从该消息中,你可以获得该消息从哪里来的,简单的,你将消息的主体解析出来,原样发回去给他,就形成一个
xmpp机器人了。
呵呵,谢谢大家的帮忙,大家说的很对,我已找到答案了:
首先离线消息是需要保存的,要不消息会丢失,这是大家都不愿看到的
离线监听事件:OfflineMessageListener
具体保存离线消息代码: public void addMessage(Message message)
{
Connection con = null;
PreparedStatement pstmt = null;
try {
con = DbConnectionManager.getConnection(); //连接数据库
pstmt = con.prepareStatement(INSERT_OFFLINE);
// private static final String INSERT_OFFLINE =
//"INSERT INTO jiveOffline (username, messageID, creationDate, messageSize, stanza) " +
//"VALUES (?, ?, ?, ?, ?)"; pstmt.setString(1, username);
pstmt.setLong(2, messageID);
pstmt.setString(3, StringUtils.dateToMillis(new java.util.Date()));
pstmt.setInt(4, msgXML.length());
pstmt.setString(5, msgXML);//具体这些参数的获取不做说明了
pstmt.executeUpdate();
DbConnectionManager.closeConnection(pstmt, con);
}