12 2011 档案

摘要:原文链接:http://www.hechunchen.info/?p=17 最近看到Design Patterns的Chain of Responsibility(职责链模式),印象最深的一点是Client的请求会沿着一条链往后走。非常像Openfire里边处理客户端的packet的过程(也是有一条链存在的)。那么openfire到底有没有用到职责链模式呢? 我带着疑问,重温了一下openfire处理packet的过程。 可以看到StanzaHandler.process(Element doc)中,对于包的处理其实被分成了3条线。并不是我们预想中的只有“职责链”这1条链。在process函. 阅读全文
posted @ 2011-12-30 16:36 ErinFlyingFish 阅读(1560) 评论(0) 推荐(0) 编辑
摘要:原文链接:http://www.hechunchen.info/?p=15 我们知道openfire插件开发主要有3种方式注册方式:1)IQHandler(IQ handlers respond to IQ packets with a particular element name and namespace),2)Interceptor(PacketInterceptor to receive all packets being send through the system and optionally reject them),3)Component(Components receiv 阅读全文
posted @ 2011-12-25 19:56 ErinFlyingFish 阅读(7221) 评论(0) 推荐(1) 编辑
摘要:我们都知道,openfire的二次开发一般都是以插件形式组织的。openfire已有数据库及数据表。今天我们来讲,我们进行插件开发的时候,如何创建自己的数据表,添加到openfire原有的数据库中。1.写数据库创建的脚本。插件src目录下新建database文件夹,目录结构如下所示:在database目录下新建testPlugin_mysql.sql,内容如下:INSERT INTO ofVersion (name, version) VALUES ('testplugin', 0);CREATE TABLE messageHistory ( messageID BIGIN.. 阅读全文
posted @ 2011-12-12 17:13 ErinFlyingFish 阅读(5857) 评论(2) 推荐(1) 编辑

点击右上角即可分享
微信分享提示