java xmpp即时通讯_基于XMPP协议即时通讯工具开发总结
一、概要
转眼毕业了,毕业设计的课题是“基于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协议即时通讯工具开发总结相关推荐
- 即时通讯系统————基于TCP协议的C/S架构(Server)
服务器端 #ifndef SERVER_H #define SERVER_H#include <sys/socket.h> #include <netinet/in.h> #i ...
- 现场解析服务化 即时通讯方案丨网络协议,应用层协议的选择
90分钟解析服务化 即时通讯方案,(不要错过) 1. 网络协议选择 udp/tcp 2. 应用层协议选择 protobuf/xmpp/mqtt 3. 数据库表的设计 视频讲解如下,点击观看: [Lin ...
- SpringBoot交友APP项目实战(详细介绍+案例源码) - 7.即时通讯(基于第三方API)
陌上花开,可缓缓归矣 系列文章目录 1. 项目介绍及环境配置 2. 短信验证码登录 3. 用户信息 4. MongoDB 5. 推荐好友列表/MongoDB集群/动态发布与查看 6. 圈子动态/圈子互 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- 【最新最全】Java微服务实战项目【尚医疗】_智慧医疗管理项目_基于若依框架快速开发
尚医疗是专门为各大医院.门诊提供的一款医疗管理平台.系统包含:系统管理.药品进销存管理.看病就诊.收费管理.检查管理.数据统计等核心模块.通过尚医疗系统可以快速.方便的管理病人从挂号到门诊结束所涉及到 ...
- java xmpp消息推送_基于XMPP协议(openfire服务器)的消息推送实现
最近好像有不少朋友关注Android客户端消息推送的实现,我在之前的项目中用到过Java PC客户端消息推送,从原理讲上应该是一致的,在这里分享一下个人的心得. 消息推送实现原理 这里的消息推送,通常 ...
- xmpp即时通讯的笔记(摘抄)
xmpp的使用: 即时通讯 instant messaging(IM) : -->实时收发信息! 即时通讯相关软件: **QQ,MSN,GoogleTalk,AIM,Jabber(XMPP别名 ...
- XMPP - 即时通讯技术
XMPP-即时通讯技术简介 (IM -- Instant Messaging)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双方都看到交谈的 ...
- java udp包_基于UDP协议的数据包收发程序(代码+报告)Java
[实例简介] 设计要求: 1)按照UDP协议数据包发送方式实现用户端之间的通信. 2)统计包的发送和接收数,计算数据包的丢失数. 3)设计美观易用的图形界面. [实例截图] [核心代码] 基于UDP协 ...
最新文章
- JVM原理和性能调优
- 01-缓存一致性---基础知识
- 配置arm-linux-gcc 位置
- python 列表 换行_python基础语法学习——参考Python Crash Course
- 使用Spring Security保护REST服务
- SpringMVC之数据传递三Ajax与Controller交互
- Async Program 基本知识 (Process、Thread、Context Switch)
- pytorch使用masked掩盖某些值(筛选值)
- wxWidgets第三课 MSWWindowProc处理窗口消息
- c语言标准化考试程序报告,在线考试系统-c语言报告.doc
- asp.net获取浏览器的唯一标识_vue单页面应用如何在微信浏览器里进行网页授权获取用户信息
- Dot net GC
- 基于Open XML 导出数据到Excel
- 数学物理中希腊字母的手写体笔顺及写法
- 浅谈云原生的“前世今生”
- 基于MT策略的实战分析
- 书单来了!大厂的技术牛人在读什么:华为篇
- js总计_Excel总计前3名加上其他的总计
- python turtle画动物_用python画简单的动物
- Linux 中的内存使用率计算方式
热门文章
- zabbix mysql.status_zabbix 监控mysql状态
- 计算机应用基础的文档,计算机应用基础
- 《RabbitMQ 实战指南》第四章 RabbitMQ进阶(上)
- 力扣190.颠倒二进制数
- CF914E Palindromes in a Tree
- css链接,列表,表格
- ————————————————————————动态规划——————————————————————1003——————————...
- 【ExtJS实践】之五 :常用语句及脚本备忘
- SqlHelper V1.0 (C#)
- 详解Intellij IDEA中.properties文件中文显示乱码问题的解决