码迷,mamicode.com
首页 > 其他好文 > 详细

openfire开发(四)消息拦截器

时间:2015-04-15 23:38:28      阅读:1956      评论:0      收藏:0      [点我收藏+]

标签:im   拦截器   interceptor   xmpp   openfire   

    大家好,我是LD,今天给大家介绍openfire的消息拦截器。通常,我们在开发插件的过程中会有一种需求,需要对客户端发送的消息来做一些我们自己的处理,比如保存数据等等。这里我们就会使用到拦截器,

    在openfire中,自定义拦截器需要实现PacketInterceptor接口。下面我们写一个简单的拦截器来介绍一下。

import org.jivesoftware.openfire.interceptor.PacketInterceptor;
import org.jivesoftware.openfire.interceptor.PacketRejectedException;
import org.jivesoftware.openfire.session.Session;
import org.xmpp.packet.Packet;

public class TestPacketInterceptor implements PacketInterceptor {

	@Override
	public void interceptPacket(Packet packet, Session session,
			boolean incoming, boolean processed) throws PacketRejectedException {
		// TODO Auto-generated method stub
		
		
	}

}

这里我们需要重写interceptPacket方法,在这个方法里面我们就可以做自己的操作了,比如保存消息等等。

    这里要说的主要是incoming和processed参数的含义。

我们可以看下openfire源码里面是如何调用拦截器的

技术分享这里我摘的是PresenceRouter里面的消息处理函数,我们可以看到消息在被处理之前和处理之后都被拦截了一次,因此在处理之前processed=false,处理之后就为processed=true;由于这是服务器收消息,因此incoming都为true,同样在消息往客户端传送的时候也会被拦截两次,incoming=false。最后通过InterceptorManager.getInstance().addInterceptor将拦截器加到openfire中,就可以生效了。

本文出自 “好学、善思” 博客,请务必保留此出处http://porterxie.blog.51cto.com/1787765/1633036

openfire开发(四)消息拦截器

标签:im   拦截器   interceptor   xmpp   openfire   

原文地址:http://porterxie.blog.51cto.com/1787765/1633036

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!