摘要: 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 阅读(131) 评论(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 阅读(178) 评论(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 阅读(158) 评论(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 阅读(303) 评论(0) 编辑
摘要: 我们都知道,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 阅读(341) 评论(0) 编辑
摘要: 你是否常常遇到没有校园网充值卡所以不能上网的情况呢?没关系,今天教你通过Ad hoc利用室友的网上网。前提是,你们俩都是笔记本电脑。那么,这是一种轻便的暂时性联网方式,因为它不需要用到其他任何辅助设备,只要两个笔记本就好了。让无线路由器什么的见鬼去吧!Ad-hoc跟一般的无线上网不同,它无需AP(Access Point,即接入点)。它是一种点对点的无线网络应用模式,只适用在2台(点对点!)网络连接设备之间。(其本质,也是一台计算机充当了虚拟的AP,这个听不懂没关系,会用就好。)今天这个解决方案的原型是大学宿舍上网,但是也非常适合于家庭无线局域网的组建,它使得一台计算机可以共享另外一台已经连接阅读全文
posted @ 2011-08-17 00:59 ErinFlyingFish 阅读(1058) 评论(8) 编辑
摘要: Problem DescriptionIn this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.InputThe input will consist of a series of integers n, one integer per lineOutputFor each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit sig阅读全文
posted @ 2011-07-20 17:04 ErinFlyingFish 阅读(141) 评论(0) 编辑
摘要: 1 // OpenAndFilterAndPres.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "pcap.h" 6 #include "remote-ext.h" 7 #include"stdlib.h" 8 9 /* 4 bytes IP address */ 10 typedef struct ip_address{ 11 u_char byte1; 12 阅读全文
posted @ 2011-07-10 20:39 ErinFlyingFish 阅读(392) 评论(0) 编辑
摘要: 百度要推出自己的手机操作系统了,周围有喷子同事又开始评价了。他说百度所谓的“现在的Android不适合中国网名使用,所以百度准备将其本地化”是谬论,然后大呼现在的中国市场流行的Android机已经很适合中国网民了。他说百度无非就只是在Android系统基础上嵌入自己的产品,说百度无耻。 其实吧,我觉得他说的有一定的道理。 但是呢。 我自己是用三星的手机,个人感觉它的改造版Android系统真心还是有bug,而且很多捆绑安装的软件根本用不着。如果百度的“秋实”OS(这个名字着实有点...)能够把系统的预装渠道稳定下来,形成一个完整的产业链,我觉得还是很有看头的。 现在国内市场大陆产手机的份额太.阅读全文
posted @ 2011-06-27 22:11 ErinFlyingFish 阅读(264) 评论(4) 编辑
