随笔分类 -  openfire&xmpp

openfire二次开发
摘要:openfire中通过ofgroup/ofgroupprop/ofgroupuser实现组织结构中的分组,通过ofroster/ofrostergroups实现好友关系中的分组。但是呢,我们做二次开发的时候,希望能够有自己的个人联系人及分组,它没有确认过程,也就是说,只要我愿意,我可以将任何组织结构中的用户添加到自己的任何联系人分组中。那么我们设计如下:两张表ofprivateuser/ofprivategroup,前者记录联系人信息,后者记录分组信息。ofprivateuser:userid(primary key)(用户id), groupid(primary key)(组id), pe. 阅读全文
posted @ 2012-03-06 17:20 ErinFlyingFish 阅读(6395) 评论(0) 推荐(0) 编辑
摘要:原文链接:http://www.hechunchen.info/?p=54生活中的中介者非常常见,比如维护世界和平的联合国组织、房屋中介、出国中介。那么,设计模式中的中介者模式是怎么样的呢?我们openfire中的群组聊天就是a typical example。我们用一个简化的群组聊天模型来说明mediator(中介者)模式。 我们的考虑是这样的,我们在用户之间添加中介者——聊天室。这样的话,用户之间的耦合度就会降低,而且不需要相互引用。它们只需独立地跟中介者交互即可。 结构图如下: 下面贴上关键代码。 接口IChatroom.java:package mediator;public inte 阅读全文
posted @ 2012-01-02 18:06 ErinFlyingFish 阅读(4268) 评论(0) 推荐(0) 编辑
摘要:原文链接: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) 编辑

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