关于什么是XMPP就不再多讲了,如正题:支持XMPP协议的服务端有很多种: ? 我们要讲的就是比较流行的Openfire服务器。...安装完成,运行openfire: ? 看到此界面,就已经八九不离十了,注意:如果运行不起来,可以试试以管理员身份运行; 点击Launch Admin按钮: ?...选择数据库,openfire自带数据库,需要数据库支持,为了更好的了解Openfire,我们需要用外部数据库,既选择第一项标准数据库连接,本人用的是mysql数据库,点击继续: ?...设置Openfire控制台登录的管理员账号和密码,此处我设置为admin,admin,点击继续: ? ? ? 到此,openfire安装及配置成功! 看数据库: ?...接下来的几篇文章,本人将讲解安卓基于xmpp+asmack+Openfire实现即时通讯聊天的过程,敬请期待!
当然也有其他的选择。 Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码。...Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的...Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的...4.安装Openfire3.8.1 使用openfire需要配置机器的域名。...打开http://127.0.0.1:9090/login.jsp登录管理页面 ? 进入用户/组新增一个用户。
OpenFire 是采用Java开发的基于XMPP(Jabber)协议,开源实时协作(RTC)服务器。...Smack 是用 Java编 写的XMPP客户端代码库,是 spark 的核心 开源界总是有许多有趣的东东,这三个合起来就是一个完整的XMPP IM 实现。...OpenFire ——服务器端 Spark——客户端 Smack——XMPP 传输协议的实现 三者都是基于Java 语言的实现,其中XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用...OpenFire 是基于XMPP 协议的IM 的服务器端的实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的...Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能 三者之间的关系: ?
Instant Messenger,及时通信软件,就是大家使用的QQ、MSN Messenger和Gtalk等等。其中Gtalk 就是基于XMPP 协议的一个实现,其他的则不是。...的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。...Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能 下图展示了三者之间的关系: ?...Spark 是一个基于XMPP 协议,用Java 实现的IM 客户端。它提供了一些API,可以采用插件机制进行扩展,上图中,“部门”部分就是使用插件机制扩展出来的新功能。...它的getChatManager()、getSessionManager ()、getMainWindow() 、getConnection() 等方法分别可以获得聊天管理器、会话管理器、主窗口、与服务器的连接等等非常有用的实例
在XMPP协议中最为明显的使用场景就是群聊,这就是一个典型的例子。...比如你想获取主域中的所有用户那是可以的。 外部组件,可是独立的一个应用程序,以tcp形式连接到openfire中,当然就不能获取到主域中的资源啦。...这两种组件的应用场景各有不同,内部组件可以与主域实现的比较紧密,基本上就是openfire一部分,比如你想扩展群聊为QQ形式的群,就可以使用内部组件来实现。...在openfire中就引用了这个包,所以基本上服务端中使用这个协议包。 whack 在tinder基础上提供了外部组件开发的一个开发包,使开发人员更方便的搭建openfire的外部组件。...ExternalComponentManager,这个类是whack提供的一个用于连接到openfire组件服务的封装类。
我经常在渗透测试活动中看到 Openfire,大部分时间这个系统的所有接口都暴露给外部攻击者,包括 9090/http 和 9091/https 端口上的管理接口: Openfire 管理控制台 由于...因此,攻击者可以在其中放置任何字符序列,并使服务器连接到他们想要的任何 URL。 测试漏洞的 HTTP 请求: GET /getFavicon?...CVE: CVE-2019-18393 漏洞文件: PluginServlet.java(修复提交) 此漏洞仅影响 OpenFire 服务器的 Windows 安装,攻击者必须在服务器上拥有管理帐户才能利用它...要测试漏洞,请登录服务器,并使用管理员的 JSESSIONID cookie 发送以下请求: GET /plugins/search/..\..\.....因此,我对开发人员的建议是在对参数执行敏感操作之前对其进行验证,例如读取文件和访问 URL。 值得注意的是,系统管理员还应该保护所有管理界面免受未经授权的访问,并且不要让它们可供外部或内部攻击者使用。
即时聊天的解决方案 socket: xmpp:xmpp+openfire+asmack 环信 常见协议 比较安全,tcp上还加了俩层 简单聊一下socket socket:套接字,连接需要ip和端口,分为...tcp和udp两种形式 常见的术语 xmpp:基于xml的可拓展协议. jabber:xmpp的前身. openfire:支持xmpp的开源服务器 smack.jar:对xmpp协议封装.方便开发的jar...今日的互联网上有数以万计的XMPP服务器运作着,并有数以百万计的人们使用XMPP实时传讯软件。...安全: 任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已自带于核心XMPP技术规格中。...弹性佳 XMPP除了可用在实时通信的应用程序,还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。
即时聊天的解决方案 socket: xmpp:xmpp+openfire+asmack 环信 常见协议 比较安全,tcp上还加了俩层 简单聊一下socket socket:套接字,连接需要ip和端口...,分为tcp和udp两种形式 常见的术语 xmpp:基于xml的可拓展协议. jabber:xmpp的前身. openfire:支持xmpp的开源服务器 smack.jar:对xmpp协议封装.方便开发的...今日的互联网上有数以万计的XMPP服务器运作着,并有数以百万计的人们使用XMPP实时传讯软件。...安全: 任何XMPP协议的服务器可以独立于公众XMPP网络(例如在企业内部网络中),而使用SASL及TLS等技术的可靠安全性,已自带于核心XMPP技术规格中。...弹性佳 XMPP除了可用在实时通信的应用程序,还能用在网络管理、内容供稿、协同工具、文件共享、游戏、远程系统监控等。
这样的结果令人很烦,我就是这样,所以,今天我把我搭建xmpp的详细步骤和说明给大家看一下。 1.前提条件:我们在腾讯服务器上已经安装好了数据库。...(因为下面的xmppp开源服务器的安装使用的不是自带的数据库)。...file=openfire/openfire_3_7_1.exe 。 3.接下我们开始安装,点击下载好的安装包。...安装步骤如下 这里的域就是你要配置xmpp服务器的名字,不要有空格,最好字母名字。不然出现了jid错误报错。 这里我用的是标准数据库连接,网上的教程都是第二个。...点击下一步,安装完成,登陆管理页面。 用户为admin,密码就是你刚设置的。登陆完就是如下。
而且还给即时通信提供了互联互通的基础。XMPP协议据网上说还是比较优秀的,表现就是google等大公司都在自己的即时通讯产品上。 openfire:是我在这个万花丛中找到的一点红。...选它的主要原因是: 1、它支持XMPP咯 2、它是java实现的,开源的 3、它比较有名,性能不错 4、部署挺简单的,还有许多现成的插件 至于openfire的安装部署网上文章比较多,这里也不打算写。...其中的Projects列举了一些使用XMPP协议的比较大的项目,比如Google、whatapp、apple,够大了吧。...简单的写了一个单例的类:XmppConnectionService,主要是负责与Xmpp服务器的通讯管理,这里面最主要的就是建一个连接,由于smack(4.1.x)的版本更新后和之前老的api不一样了。...这玩意不知道使用有CA签名的证书会不会有这问题。
从3月开始研究Openfire,其实就是要做一套IM系统,也正是这个原因才了解到Openfire。之前还真没想过有这么多的开源产品可以做IM,而且也没想到XMPP这个协议竟然如何强大。...1、对于XMPP的学习很重要 最开始觉得搭建一套Openfire+spark太简单啦,而且将spark的界面修改一下就可以变成一个新的产品,所以当时觉得XMPP协议这么高深的东西不用太深入。...当然如果英文好那就原版吧:http://xmpp.org/about/technology-overview.html 经过一段时间学习后,感觉QQ和微信在基础原理上真的和XMPP很类似,只是使用的协议格式有些差别...但是使用XML这种标记语言是不是很浪费流量呢?虽然XMPP扩展起来非常方便,但是就这些标签也着实够大的,像平常的文字聊天时,或许中间标记产生的流量也和聊天内容相当了。...在此也建议对于openfire的扩展最好还是使用插件吧,除非自己的定制要求很高,Openfire本身已经不适应了的。 我的要求基本都可以达成,而且这样以后升级新版本也非常简单,不会出现问题。
这样的好处就是有消息后才向客户端推送,相比于拉取数据不会产生许多无效的查询,实时性也高。 xmpp这种即时通信协议基于TCP长连接还是比较符合这种场景的。...只需要在服务端增加一个模块用于接收用户订阅与数据的推送就完成了主体功能。 在xmpp协议里可以扩展组件,这样我们写一个组件,然后连接到xmpp服务器,这样就可以应用于不同的xmpp服务器。...准备工作 主要的环境 因为我比较熟悉openfire的体系,所以自然就用它。客户端暂时没有特别的需求,只是用于接收数据,所以用smack或者任何一款xmpp 客户端都可以。...这里使用到了componentManager,这个是openfire实现的一个组件管理类,通过这个类的对象可以发送xmpp数据包。 增加shutdown方法,使得线程可以在外部进行退出操作。...PushManager就是管理组件并连接到xmpp服务器的一个类。
Connection管理模块 整个启动过程有点奇怪,并没有看到Openfire是如何监听端口的,如果不监听如何获利客户端连接呢?...因为Openfire只通过Module来管理的,那么对应的网络管理应该就在Module中。...在ConnectionManagerImpl中管理了主要的连接,都是以ConnectionListener的来管理,这个类用于包装连接。我的理解就是一个连接抽象吧,这样对于代码来说写起来比较统一。...连接器过来的连接 webAdmin:是指web控制台的连接 这里面bosh和webAdmin使用的是http协议,所以连接并不是长连接,其他的都是socket。...在Openfire中对于Session的管理都集中在SessionManager模块。但在前面说到连接管理时已经知道了IoSession的创建过程,但并没有看到openfire是如何管理它的。
系统主要由以下部分组成:一是服务器,负责管理发出的连接或者与其他实体的会话,接收或转发XML(ExtensibleMarkup Language)流元素给授权的客户端、服务器等;二是客户终端。...服务器端: 服务器端则采用Openfire作为服务器。允许多个客户端同时登录并且并发的连接到一个服务器上。...不用多纠结) androidpn服务器端是java语言实现的,基于openfire开源工程,Web部分采用的是spring框架,这一点与openfire是不同的。...SessionManager负责管理客户端与服务器之间的会话,Auth Manager负责客户端用户认证管理,Presence Manager负责管理客户端用户的登录状态,NotificationManager...在NotificationService里创建一个单线程,让其对服务器进行连接,由于使用Xmpp连接服务器要分为三步:连接,注册,登陆。
:java线程安全 学习笔记:Hashtable和HashMap 学习笔记:Java的一些基础小知识之JVM与GC 团队组织管理相关 谈谈敏捷开发 F.I.S初探(前端工程化) 读《Team Leader...引发的思考 敏捷之痒 数据库\缓存\存储开发相关 数据库SQL,NoSQL之小感悟 MongoDB安装与使用体验 缓存遇到的数据过滤与分页问题 哪种缓存效果高?...Apache Ignite高性能分布式网格框架-初探 openfire 在Openfire上弄一个简单的推送系统 Openfire的启动过程与session管理 Openfire集群源码分析 openfire...的组件(Component)开发 Openfire阶段实践总结 技术笔记:XMPP之openfire+spark+smack XMPP协议之消息回执解决方案 delphi相关 技术笔记:Indy IdSMTP...使用js在网页上记录鼠标划圈的小程序 其他 学习笔记:内存,堆栈,到底为何物?
Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。...这里如果使用的是本地域,需要设置为127.0.0.1 (3)数据库设置 这里根据自己用的数据库类型进行设置 ?...]即上面创建的数据库名,这里是openfire 用户名和密码也就是前面更改之后的openfire的用户名和密码,上篇博客里将用户名和密码都设置成admin (4)下面连续默认设置 ?...(5)重启一下openfire 然后登陆 ? 3、使用测试 (1)下载一个spark 安装spark的时候jre选择openfire安装目录下的jre ? ? (2)启动openfire ? ?...(3)在openfire的管理平台中发送消息给客户端 ? 接受到消息为: ?
0x1 功能介绍 Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的...Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样,同样强烈建议使用插件扩展的方式来增加新的功能,而不是修改人家的源代码。...然后进入了一个配置管理员的界面,说实话不知道是什么玩意也不知道有什么用然后就下一步下一步直接跳过了。 ?...然后转换到用户接口设置的地方点击一下就直接访问到了webshell的内容: ? ? 测试了一下权限就是运行openfire的用户的管理system这波操作是真的可以。 ?...管理员的用户名和密码都明文保存在保存在数据库当中: ?
基于 Eclipse 平台,拥有诸多强大的功能,同时也非常易于使用,PyDev 的这些特性使得它越来越受到人们的关注。 ...openfire: Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。您可以使用它轻易的构建高效率的即时通信服务器. ...xmpp:The Extensible Messaging and Presence Protocol 中文全称:可扩展通讯和表示协议 可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示和需求响应服务中的...XMPP以Jabber协议为基础,而Jabber是即时通讯中常用的开放式协议。.../manual_101_install.html 2 openfire服务器部署,二次开发 在开发环境上部署openfire 下载open的demo并跑通 3 使用xmpp协议开发业务功能
openfire群聊与QQ群对比 应该是去年的时候开始接触openfire,当时在分析后发现基于xmpp协议的openfire已经具备了群聊的功能。...还有一些QQ特有的功能,比如邀请进群需要管理员审核之类的管理功能就更少了,这块都需要扩展实现 改造Openfire群聊天室为群 实际上对于openfire的muc改造来说,持久化成员是第一个重要的工作。...通过openfire的插件体系增加一个插件,在服务端实现加群、退群等功能 毕竟xmpp协议里是没有获得群列表和房间成员的功能的,以及一些加群、退群的管理功能都没有,所以要自己开发。...自己定义一套协议来完成客户端与服务端的通讯 因为要走openfire,所以还是要定义xmpp协议,我用的是IQ。考虑到我使用的是smack做的,所以这部分就不再写了。...利用HistoryStrategy限制服务端推送条数 所以不用举太多问题,就这两个就够了,那么我觉得openfire的这种历史消息策略中使用number(条数)是很重要的。
因为产品中使用的是openfire和spark的组合,所以一直就想在这个范围内找一个现成的方案,只不过通过阅读一些开发者的总结提到说openfire没有消息回执的方案。...然后检查了客户端使用的smack包里确实有XEP-0184的实现。...流管理背后的基本概念是,初始化的实体(一个服务端或者客户端)和接收的实体(一个服务端)可以为更灵活的管理stream交换命令.下面两条流管理的特性被广泛的关注,因为它们可以提高网络的可靠性和终端用户的体验...只不过在smack要4.1.x以上版本,而且默认是不开启流管理功能的,所以要手动的开启一下,剩下的事情由smack和openfire来完成。...没想到XMPP协议已经支持了整个流程,省去了很多事情,同时openfire中websocket也是支持xep-198,所以手机端应该也是可以支持。
领取专属 10元无门槛券
手把手带您无忧上云