前言
part1

给同学们的信-开启即时通讯软件学习之旅

如果,您想问我们一个QQ、微信之类的通讯软件怎么实现,我们可以告诉你一些基本的原理和一些细节。本套课程就是以openfire为基础,给大家讲解openfire的连接、注册、单点消息、群消息、消息丢失问题的解决、性能测试,集群, 缓存技术,高性能开发等各种知识。涉及的面非常广,你可能需要花很多时间来学习这些系统的知识。 ...

第一课
part1

第一课、打开即时通讯服务器openfire的大门

你现在最常用的软件是什么,如果我没有猜错,应该是QQ和微信,是的,他们就是即时通讯软件。 一个可以让你无时无刻,只要有网络就能够沟通的工具,就是即时通讯工具。那么本教程,我们主要以openfire为基础来讲解即时通讯服务器和客户端的实现。...

第二课
part1

第二课、让openfire服务器运行起来

是不是想马上就有个聊天工具来聊一下天,没问题,这节课,我们就帮助您实现这个梦想。现在你要做的就是,看一个身边的美女,然后想他是我的,然后就努力吧。哈哈,上面的话摘自“书中只有颜如玉,书中只有黄金屋”。...

第三课
part1

第三课、openfire管理控制台详解

Openfire从开发者角度,我认为可以分为2个方面: 第一个方面是看不到的代码,他实现了90%以上的xmpp协议,也就是这个网站(xmpp.org)的协议。因为实现了xmpp协议,所以才能够在openfire中发送接收消息。 第二个方面是管理控制台,通过http://127.0.0.1:9090/登录。我们在前一课已经有说明了。因为openfire管理控制台对控制整个openfire的内部参数和实现的功能都很有作用,所以,我们这里要单独着重讲一下openfire管理控制台。...

第四课
part1

第四课、Openfire开发环境的搭建

Openfire是开放源码的,使用java编写而成,所以你可以使用eclipse重新编译并启动openfire。Openfire编译的过程大致如下,(如果下面的步骤,你操作过程中出现了错误,无法配置成功,请看我们的视频《openfire的编译与安装》)...

第五课
part1

第五课、Openfire之插件开发超级菜鸟入门

要在一个成熟的即时通讯服务器中去扩展一个新的功能其实并不是一件容易的事情。但是,自从电脑台式机有了标准接口,可以随意选择自己喜欢的硬件进行组装后,大型软件的开发似乎也借鉴了其思想,变得简单容易了很多。...

第六课
part1

第六课、Openfire插件之拦截器PacketInterceptor

前面我们讲了一个插件必须有一个类继承plugin,只有这样,它才被openfire认为是一个插件。 Openfie被设计成可以用添加插件的方式来扩展功能,那么什么是openfire插件呢? 这里,我想用通俗的告诉大家什么是插件,其实任何软件的插件都是这个思路的。 ...

第七课
part1

第七课、编写第一个openfire插件(过滤脏话插件)

这一节课,我们讲解一下,怎么做一个openfire插件。本课要做的插件的功能是:插件接收用户发过来的消息,如果消息的正文中包含了“fuck”这个单词,插件则截断这条消息,不允许openfire进行转发。如果消息不包含“fuck”这个单词,那么插件什么也做。...

第八课
part1

第八课:Openfire插件的打包及发布

Ant是一个很古老的打包部署工具,它的设计思路就是要让编译部署简单。ant能够让那些重复的编译、测试、部署工具只要几个命令就可以解决。 Ant的安装和配置其实和java的安装配置差不多,也需要设置环境变量,如果你用某些版本的eclipse,说不定已经给你安装好了呢。 ...

第九课
part1

第九课:Openfire 是怎么存离线消息

在默认情况下,不添加任何插件的情况下,当用户不在线,对于发送给该用户的消息,会被openfire存放到数据库中的ofoffline表中。 为了更深入的了解离线消息的原理,我们来看一下ofoffline这个表,这个表的结构如下所示: ...

第10课
part1

第十课:Openfire内部组件和外部组件初步介绍

Openfire内部组件其实就是openfire的插件,因为它必须和openfire所在的进程一起运行,被openfire动态加载,所以叫做openfire插件。Openfire外部组件,就是与openfire所在的进程没有关系,甚至可以不与openfire在同一台机器上运行的组件,一般是一个可运行的jar包,我们叫做外部组件。...

第11课
part1

第十一课:openfire的属性模块-为灵活配置而生

要一个系统稳定并灵活的运行,需要很多属性。我们以网站为例,需要数据库的地址和密码,网站才能连接数据库。需要邮件服务器的地址,密码,网站才能发送邮件。这些信息可以直接写死在程序里,不过,如果您那么做了,我会笑您太天真。...

第12课
part1

第十二课:Openfire核心模块之的缓存系统的实现(一)

使用缓存系统是openfire代码变迁的一小步,却是openfire性能优化的一大步。...

第12课
part2

第十二课:Openfire核心模块之的缓存系统的实现(二)

使用缓存系统是openfire代码变迁的一小步,却是openfire性能优化的一大步。...

第13课
part1

第十三课:openfire对电子名片的支持,一种获得用户详细信息的国际标准

Vcard是电子名片的意思。首先,纸质名片是为了商业伙伴之间方便交换个人信息而诞生的。它里面包含姓名,电话,公司等信息。如下:...

付老师疑难问答