转载请注明出处:http://blog.csdn.net/chziroy/article/details/30047889

初学android,做了一个基于XMPP协议的即时通讯工具,实现了基本的文字聊天,离线消息,表情聊天,文件传输,语音聊天,注册登陆,扥故GTalk的功能。完成项目之后,还写了篇论文,大学生活的最后一份作业。整个过程基本所有知识都是从零学起,关于XMPP协议的知识以及开发包的应用,都查阅了大量资料,收获颇多。这里整理一下android平台下开发xmpp即时通讯工具的资料,当作自己的总结,也方便后来人学习。

这个过程中,使用了服务器Openfire,开发包Asmack,PC端XMPP客户端Spark。以上就是开发过程中主要查阅的知识。

首先,何为XMPP协议,简要(不精确)地说:“XMPP一种开源的通讯协议,只要是基于这个协议开发的通讯工具,都可以相互通讯(不同服务器的用户则需要在服务器相互连接的前提下,才能跨服务器通讯)”。 另外XMPP协议以前的名字是Jabber。XMPP官网,XMPP中文网站

其次,关于Openfire,开发过程中只需要专注于客户端的开发,因为我们可以使用开源免费的服务器Openfre。

  1. Openfire官网
  2. Openfire服务器搭建教程
然后,关于开发包,官方提供的Java平台的开发包叫Smack,而ASmack是Smack在android平台的兼容包。开发过程使用的就是Asmack。ASmack和Smack二者的API基本完全一样,所以,只需要查阅Smack的资料即可学会使用ASmack。
  1. Asmack下载地址
  2. Smack API 官网
  3. Smack 使用指导 (这个网站讲解了主要场景几个API的使用方法,很适用)
还有,Spark是XMPP协议在PC端的一个官方客户端,开发过程中,如只有一个手机,那就用手机和这个客户端进行通讯测试,其中存在一个小问题,后续会将
  1. Spark下载地址
最后,关于一些版本兼容问题,主要遇到三个问题
  • Openfire 3.9.2开始才支持emoji字符,3.9.1及更旧的版本多不支持emojicon字符。
  • 部分版本的asmack在文件传输时会出现问题,这里有一个可以正常适用的版本
  • PC端的Spark客户端,传输文件的功能不稳定,后期传输文件用手机与手机进行测试。

【总结】开发基于XMPP协议的通讯工具相关推荐

  1. java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结

    一.概要 转眼毕业了,毕业设计的课题是"基于XMPP协议的通讯工具",开发平台式android,实现了基本的离线消息,文字聊天,表情聊天,文件传输,语音聊天的功能. 本文主要介绍开 ...

  2. Android 模块 -- 基于XMPP协议的手机多方多端即时通讯方案

    目   录 基于XMPP协议的手机多方多端即时通讯方案................................................................. 1 目   录 ...

  3. 基于XMPP协议的手机多方多端即时通讯方案

    原文地址为: 基于XMPP协议的手机多方多端即时通讯方案 基于XMPP协议的手机多方多端即时通讯方案 目   录 基于XMPP协议的手机多方多端即时通讯方案...................... ...

  4. java xmpp协议_GitHub - zhengzhi530/xmpp: 基于Xmpp协议的即时通讯社交软件(客户端+服务端)...

    yyquan 开源一个自己去年写的基于Xmpp协议的即时通讯社交软件 (客户端+服务端) 本项目仅供参考,对于正在学习Xmpp以及javaweb后台的同学,可以看一下. 做这个项目纯属个人兴趣爱好,所 ...

  5. 基于XMPP协议的Android即时通信系

    2019独角兽企业重金招聘Python工程师标准>>> 以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过 ...

  6. Android之基于XMPP协议即时通讯软件(一)

    为什么80%的码农都做不了架构师?>>>    文章开头,先打一下广告咯,今年误打误撞,侥幸进入2013CSDN博客之星候选,目前排名已经有点不堪入目,所以,谨希望广大基友们动动手指 ...

  7. Android学习笔记--基于XMPP的即时通讯

    一.常见即时通讯实现 socket openfire+asmack 环信 信鸽 融云 二.XMPP优势 1. 开放性 XMPP协议是自由.开放.公开的,并且易于了解.而且在客户端.服务器.组件.源码库 ...

  8. java xmpp消息推送_基于XMPP协议(openfire服务器)的消息推送实现

    最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过Java PC客户端消息推送,从原理讲上应该是一致的,在这里分享一下个人的心得. 消息推送实现原理 这里的消息推送,通常 ...

  9. C#开发基于ESMTP协议的邮件发送系统经验总结

    用过C#内置的SMTP类的朋友大概知道,使用它发送邮件的时候,有时候总是出现莫名奇妙的错误,有时候可以发送成功,有时候说用户帐号验证失败,即使你设置了帐号验证信息,问题依旧,特别是在你使用QQ邮箱(好 ...

最新文章

  1. OpenCV代码提取:Windows上通过DShow获取Camera视频
  2. android 开源Spanner,著名的分布式事务数据库谷歌Spanner设计有坑!
  3. Android学习笔记(三):Andriod程序框架
  4. php生成首页 教程,简单静态页生成 过程_PHP教程
  5. 华为手机线刷工具_华为手机天气小工具误删/移除/丢失/不见了怎么办?
  6. 设置本地Nexus存储库并从Maven部署WAR文件
  7. 【渝粤题库】陕西师范大学200821 课程与教学论(计算机)
  8. Java 常用语法和数据结构
  9. 从我的简历再谈测试分类
  10. LINQ to SQL VS LINQ to Entities
  11. 改变Linux的DNS解析顺序(DNS到hosts)
  12. linux启动mysql_允许远程连接到MySQL数据库服务器的步骤
  13. 【Java后台开发规范】--- Null值处理
  14. 黄绿色——三色配色篇
  15. Linux基础学习记录
  16. 百度全景地图 -(街景)_百度地图VR全景,世界触手可及
  17. KK集团招股书失效,首次冲刺港交所上市失利,尚未实现盈利
  18. html5 blockquote,HTML5 blockquote 标签
  19. java 发微信视频_分享java微信开发视频
  20. python逗号表达式_正则表达式 - 在第一个逗号前获取所有内容。 - python

热门文章

  1. SharePoint中跨列表查询
  2. Latex控制段落间距/插入0.5个空白行
  3. 马克思主义哲学笔记(五)
  4. 智能外呼系统? 其工作流程是什么?
  5. 最新内测版Android qq,手机QQ v8.0内测版全新体验:完全变了
  6. 记录:本地新建项目推送到gittee(refusing to merge unrelated histories --author is not ‘Name <email>‘ and matches)
  7. 程序员编程必备的6大装备,比尔盖茨居然也用三个屏幕编程!
  8. 【ChatGPT高端玩法】ChatGPT一分钟制作PPT
  9. 写vue3+ jsx+ts语法+ storybook展示的组件库
  10. 理科女学医好还是学计算机好,理科女生适合的专业有哪些