一、概要

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

本文主要介绍开发过程中服务器的配置,开发包Asmack的使用,以及其它一些开源包的使用(如表情包)。

二、XMPP协议以及Openfire服务器

1,XMPP协议

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

关于XMPP协议的官网,如下(英文为官网,中文为国人翻译的版本)

XMPP官网

XMPP官网中文翻译

2,Openfire服务器

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

另外,开发过程中可以用一个测试客户端,官网提供的Spark,目前最新版本(好久没更新)存在一个问题,收发文件的功能不是很稳定。

##三,Asmack开发包 API的使用

smack是官方给出的xmpp协议在java平台的开发包,而asmack是android平台的xmpp协议开发包

Asmack下载官网:

smack和Asmack的API基本没有区别,所以可以开发过程可以参照smack的API

##四,表情聊天

表情聊天使用了开源包Emojicon

##五,版本问题

开发过程中遇到两个关于版本的问题

1,Openfire 3.9.2开始才支持emoji字符,3.9.1及更旧的版本多不支持emojicon字符

2,不知道为什么部分版本的asmack在文件传输时会出现问题,以下这个版本是我在网上找到的一个可以正常使用的版本

java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结相关推荐

  1. 即时通讯系统————基于TCP协议的C/S架构(Server)

    服务器端 #ifndef SERVER_H #define SERVER_H#include <sys/socket.h> #include <netinet/in.h> #i ...

  2. 现场解析服务化 即时通讯方案丨网络协议,应用层协议的选择

    90分钟解析服务化 即时通讯方案,(不要错过) 1. 网络协议选择 udp/tcp 2. 应用层协议选择 protobuf/xmpp/mqtt 3. 数据库表的设计 视频讲解如下,点击观看: [Lin ...

  3. SpringBoot交友APP项目实战(详细介绍+案例源码) - 7.即时通讯(基于第三方API)

    陌上花开,可缓缓归矣 系列文章目录 1. 项目介绍及环境配置 2. 短信验证码登录 3. 用户信息 4. MongoDB 5. 推荐好友列表/MongoDB集群/动态发布与查看 6. 圈子动态/圈子互 ...

  4. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  5. 【最新最全】Java微服务实战项目【尚医疗】_智慧医疗管理项目_基于若依框架快速开发

    尚医疗是专门为各大医院.门诊提供的一款医疗管理平台.系统包含:系统管理.药品进销存管理.看病就诊.收费管理.检查管理.数据统计等核心模块.通过尚医疗系统可以快速.方便的管理病人从挂号到门诊结束所涉及到 ...

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

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

  7. xmpp即时通讯的笔记(摘抄)

    xmpp的使用: 即时通讯 instant messaging(IM) :  -->实时收发信息! 即时通讯相关软件: **QQ,MSN,GoogleTalk,AIM,Jabber(XMPP别名 ...

  8. XMPP - 即时通讯技术

    XMPP-即时通讯技术简介 (IM -- Instant Messaging)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的 ...

  9. java udp包_基于UDP协议的数据包收发程序(代码+报告)Java

    [实例简介] 设计要求: 1)按照UDP协议数据包发送方式实现用户端之间的通信. 2)统计包的发送和接收数,计算数据包的丢失数. 3)设计美观易用的图形界面. [实例截图] [核心代码] 基于UDP协 ...

最新文章

  1. JVM原理和性能调优
  2. 01-缓存一致性---基础知识
  3. 配置arm-linux-gcc 位置
  4. python 列表 换行_python基础语法学习——参考Python Crash Course
  5. 使用Spring Security保护REST服务
  6. SpringMVC之数据传递三Ajax与Controller交互
  7. Async Program 基本知识 (Process、Thread、Context Switch)
  8. pytorch使用masked掩盖某些值(筛选值)
  9. wxWidgets第三课 MSWWindowProc处理窗口消息
  10. c语言标准化考试程序报告,在线考试系统-c语言报告.doc
  11. asp.net获取浏览器的唯一标识_vue单页面应用如何在微信浏览器里进行网页授权获取用户信息
  12. Dot net GC
  13. 基于Open XML 导出数据到Excel
  14. 数学物理中希腊字母的手写体笔顺及写法
  15. 浅谈云原生的“前世今生”
  16. 基于MT策略的实战分析
  17. 书单来了!大厂的技术牛人在读什么:华为篇
  18. js总计_Excel总计前3名加上其他的总计
  19. python turtle画动物_用python画简单的动物
  20. Linux 中的内存使用率计算方式

热门文章

  1. zabbix mysql.status_zabbix 监控mysql状态
  2. 计算机应用基础的文档,计算机应用基础
  3. 《RabbitMQ 实战指南》第四章 RabbitMQ进阶(上)
  4. 力扣190.颠倒二进制数
  5. CF914E Palindromes in a Tree
  6. css链接,列表,表格
  7. ————————————————————————动态规划——————————————————————1003——————————...
  8. 【ExtJS实践】之五 :常用语句及脚本备忘
  9. SqlHelper V1.0 (C#)
  10. 详解Intellij IDEA中.properties文件中文显示乱码问题的解决