Android之基于xmpp openfire smack开发之openfire介绍和部署[1]
http://blog.csdn.net/forlong401/article/details/33730365
前言
Java领域的即时通信的解决方案可以考虑openfire+spark+smack。当然也有其他的选择。
Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码。
即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择。
Smack是即时通信客户端编程库,目前我已测通通过jsp使用smack的API向openfire注册用户发送消息,并且可以通过监听器获得此用户的应答消息。
通过smack向msn用户和QQ用户,gtalk用户发送消息应该也可以实现,关于向gtalk用户发送消息的例子较多。这个留待以后研究。至少目前可以通过程序向spark发消息了。对于局域网内部应用足以解决系统与用户交互的问题,甚至可以做自动应答机器人。
Spark支持聊天,语音,视频,会议,文件收发,截屏,连接msn等功能。
1.什么是XMPP
2.IM
3.Spark,smack和Openfire
Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能
Spark 提供了客户端一个基本的实现,并提出了一个很好的插件架构,这对于开发者来说不能不说是一个福音。我强烈建议基于插件方式来实现你新增加的功能,而不是去改它的源代码,这样有利于你项目架构,把原始项目的影响降到最低。
Openfire 是基于XMPP 协议的IM 的服务器端的一个实现,虽然当两个用户连接后,可以通过点对点的方式来发送消息,但是用户还是需要连接到服务器来获取一些连接信息和通信信息的,所以服务器端是必须要实现的。Openfire 也提供了一些基本功能,但真的很基本的!庆幸的是,它也提供插件的扩展,像Spark 一样。
Smack 是一个XMPP 协议的Java 实现,提供一套可扩展的API,不过有些时候,你还是不得不使用自己定制发送的XML 文件内容的方式来实现自己的功能。
4.安装Openfire3.8.1
后续按照提示安装,点击完成启动openfire,最后出现下面的界面:
点”Launch Admin”,出现下面的页面,页面连接为http://127.0.0.1:9090/setup/index.jsp
语种选择中文(简体),点”Continue”:(下面的页面如果出现英文,请刷新一下页面或者重新点Launch Admin)
这个页面的Domain默认为机器名,请改为一开始设置的域名,例如csdn.shimiso.com,接着点Continue(继续):
这个页面中第一个选项,即标准数据库连接,不要选择嵌入的数据库(Embedded Database,嵌入的数据库是hsqldb数据库,生产环境不要选择此选项),然后点”继续”:
这里我用的是mysql数据库,按官方要求最好是5.0以上,确保有个名字叫openfire的库存在,配好后点继续
这个页面是配置是否使用LDAP,我们现在不配置LDAP,所以选择 Default默认即可,点继续:
这里填写邮箱和确认密码后直接点继续:
等待大约30秒左右,到此安装和配置操作全部完成。打开http://127.0.0.1:9090/login.jsp登录管理页面
进入用户/组新增一个用户。
5.客户端配置和调试
这里我没用使用官方的spark客户端,而是用了潘迪安和如意通,配置截图如下:
从上面的聊天记录我们发现所有的用户id全称都是:用户名@域名/资源名,这个就是我们在XMPP协议中通常说说的JID,即jabber id,它是一个xmpp协议帐号系统的通称,后面我们在使用smack编程库调试接口时会经常用到这个参数。
Android之基于xmpp openfire smack开发之openfire介绍和部署[1]相关推荐
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...
- Android之基于xmpp openfire smack开发之Android客户端开发[3]
http://blog.csdn.net/shimiso/article/details/11225873 在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们 ...
- Android之基于xmpp openfire smack开发之smack类库介绍和使用[2]
http://blog.csdn.net/shimiso/article/details/8816540 关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可 ...
- 基于xmpp openfire smack开发之smack类库介绍和使用[2]
关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组 ...
- Android之基于XMPP协议即时通讯软件(一)
为什么80%的码农都做不了架构师?>>> 文章开头,先打一下广告咯,今年误打误撞,侥幸进入2013CSDN博客之星候选,目前排名已经有点不堪入目,所以,谨希望广大基友们动动手指 ...
- Android 模块 -- 基于XMPP协议的手机多方多端即时通讯方案
目 录 基于XMPP协议的手机多方多端即时通讯方案................................................................. 1 目 录 ...
- android 图片横竖判断_Android应用开发之android 判断ImageView当前显示的是哪一张图片...
本文将带你了解Android应用开发之android 判断ImageView当前显示的是哪一张图片,希望本文对大家学Android有所帮助. 判断ImageView当前显示的是哪一张图片 Java ...
- android webview权限申请_Android应用开发之android 6.0下webview的定位权限设置方法
本文将带你了解Android应用开发android 6.0下webview的定位权限设置方法,希望本文对大家学Android有所帮助. 如下所示: WebView webView = (WebVi ...
- android mqtt详解_安卓开发之mqtt协议
首先物联网协议mqtt协议是基于tcp/ip协议的,使用了官方的mqttclient框架 /* *初始化mqttclient */ private void init() { try { //MQTT ...
最新文章
- 2022-2028年中国车载充电机行业深度调研及投资前景预测报告
- [转] fastText
- XML Programming with C# and .NET
- cube sdio fatfs 初始化sd卡_Stm32CubeMx配置SDIO+FATFS+FREERTOS
- UA MATH563 概率论的数学基础 鞅论初步9 分支过程简介
- MFC工具栏增加EditBox和Button
- 超实用的JavaScript技巧及最佳实践
- 《C++并发编程实战》——1.1 什么是并发
- IE兼容性问题解决方案
- 写给独自站在人生面前的自己1-java加密算法
- 字符对应的URL编码值集合
- linux刻录文件,linux中刻录iso到光盘
- WebService的四种客户端调用方式(基本)
- Jpeg文件格式转换成bmp文件格式
- 超详细pynq-z2入门
- 李宏毅深度学习ppt总结
- java计算机毕业设计南京市某物流公司管理信息系统源代码+数据库+系统+lw文档
- 软考中级系统集成项目管理工程师自学好不好过?
- Django管理多个APP且在后台显示自定义APP的名称
- 检测浏览器版本并升级jQuery插件
热门文章
- 技术 Leader 怎样带跨一个团队?
- 非常适合新手的redis cluster搭建过程
- ML.NET Cookbook:(5)如何查看中间过程数据?
- 解决 .NET Core 在 Linux Container 中获取 CurrentCulture 不正确的问题
- C#8.0宝藏好物Async streams
- 你见过的“垃圾”项目是这样子么?
- C# 打印PDF文档的10种方法
- 一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
- C#知多少 | 每个版本都更新了什么?
- 在远程 CSM 课程中体验线上工作坊