Openfire 简介
概念:Openfire是一款美观,易于使用,可配置,可自定义,可扩展且功能强大的即时消息服务器系统,Openfire最主要的功能是实现XMPP(XMPP (Extensible Messaging and Presence Protocol),简单的来讲,它就是一个发送接收处理消息的协议,但是这个协议发送的消息,既不是二进制的东东也不是字符串,而是XML。正是因为使用了XML作为消息传递的中介,Extensible 才谈的上。XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。)服务器,简单来说,openfire为我们提供一个固定的地址,我们只需要向openfire服务器发送标准的XMPP信息(即XML文件流),那么openfire服务器应当给予我们回应,这里的openfire服务器也可以看做一个容器,我们在聊天时,需要在这个服务器上注册一个会话,在会话存在的时间,我们可以实现即时聊天的一些常用功能,比如建立自己的组,添加好友,聊天,以及传送文件等等,同时,openfire服务器实现自己的管理界面,这样openfire服务器也扮演一个web容器的角色。
如何理解:Openfire 是基于XMPP 协议的 IM(即时消息) 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改它的源代码。
特性:
- 开源免费:开源的、基于可拓展通讯和表示协议(XMPP)
- Java编程语言:采用Java编程语言开发的实时协作服务器
- 安装使用简单:采用java的war包部署,并利用web进行管理
- 开放的协议:可以使用各种支持XMPP协议的IM客户端软件登陆服务
- 客户端功能强大:Spark支持聊天,语音,视频,会议,文件收发,截屏,连接msn等功能。
- 客户端支持:支持pc电脑客户端、android、ios等手机客户端、
- 插件支持:大量的第三方插件支持,也可以根据需要自行开发插件
- 广泛的技术支持:gtalk等广泛的国际和社区技术支持
Openfire 历史及由来
Java领域的即时通信的解决方案:openfire+spark+smack,相信移动端开发的同学,或多或少都了解或者开发过 即时通讯 类或者有及时通讯功能的项目,目前独立开发来说比较常用的是基于socket,但是大多数情况的快速开发都会选择集成第三方的IM库,如融云,环信等等,openfire是一种IM的实现方式,它基于xmpp协议,服务器采用openfire,客户端使用开源的XMPPFramework的方式来实现即时通信。
Openfire 版本更新说明
Openfire 4.5.2 发布了。Openfire 是一个使用广泛采用的即时消息开放协议 XMPP(也称为 Jabber)的 RTC(Real Time Collaboration,实时协作) 服务器,它非常易于设置和管理,提供良好的安全性和性能。此版本更新内容包括:
Bug
- [OF-963] - WebSocket keep-alive 未按预期工作
- [OF-1963] - 跨站点脚本(XSS)问题 - CSW Document No: C1055
- [OF-1964] - SystemProperty 应该使用 Thread.getContextClassloader 作为后备加载类
- [OF-1970] - 路由到不可用的完整 jid 的无法传递的邮件应被路由到 prio 0(非 1)或更高的其他资源
- [OF-1977] - Pubsub 通知应发送给父节点的订户
- [OF-1999] - 阻止潜在的算术溢出
- [OF-2013] - 修复对连接“分离”状态的检测
- [OF-2014] - 重新初始化时重置 ConnectionListener 回调对象
- [OF-2015] - 删除立即用于恢复的会话
- [OF-2017] - Jetty 更新为 9.4.28.v20200408
- [OF-2026] - 稳定且唯一的 Stanza 标识符不必为 UUID
新特性
- [OF-158] - 通过管理控制台设置 MUC room 配置表单的默认值
- [OF-1966] - 添加日语翻译
还有一些改进的内容,详情可查看更新列表:https://download.igniterealtime.org/openfire/docs/latest/changelog.html