Asmack开发系列之XMPP概述

android xmpp开发 asmack实现断线自动重连 asmack本身封装了断线重连机制,但是有一点需要注意 在设置链接属性钱,要加载ReconnectionManager这个类,否则没有效果。 直接上代码: 第一步 try { Class.forName("org.jivesoftware.smack.ReconnectionManager"); } catch (Exception e1) { } 阅读详情

这一节,我们从Asmack基于的协议核心出发,XMPP协议,来学习。弄懂XMPP对学习Asmack源码有着重要的原因,做到知其然知其所以然。

本文主要是学习《XMPP The Definitive Guide Building Real-Time Applications with Jabber Technologies》文总结而来。


1,您能够拿XMPP来做什么?

XMPP(Extensible Messaging and Presence Protocol),主要是传输XML数据。

典型的XMPP实现一般包含如下服务(Services):

1)通道加密(Channel Encryption)。虽然加密通信不是必须的,但对于建立安全软件却是非常必须的。

2)鉴权(Authentication)。用户需要通过xmpp来通信,首先要进行登入鉴权。

3)上线/出席(Presence)。主要是负责“好友在线么?不在线?还有就是,我上线了,我下线了”等。

4)花名册/联系人列表(Contact list)。

5)一对一通信(One-to-One Messaging)。

6)群对话(Multi-party Messaging)。

7)通知(Notifications)。广播一样,有点像QQ的右下角弹框。当然,你可以定制主题topic

8)服务发现(Service Discovery)。服务发现,你可以知道别的节点支持什么样的服务。

9)能力广告(Capabilities advertisement)。作为服务发现的一个补充。

10)结构化数据表单(structured data forms)。可以和其他节点交换类似与html表单的数据。

11)流程管理(Workflow Managerment)

12)Peer-to-Peer富媒体会话。这个用来传输多媒体数据,用作语音对话,视频对话,文件传输等。

以上就是一个典型的实现XMPP协议库需要支持的服务。


2,应用

以下是能够使用XMPP来做的应用:

1)即时通信(Instant Messaging)。

2)群组对话(GroupChat)。

3)游戏(Gaming)。

4)系统控制(System Control)。

5)定位。

6)云计算中间件。

7)内容发布系统。

8)IP电话(VoIP)。

9)标识系统。


3,历史(略)






即时通讯:XMPP基础 XMPP(Extensible Messaging and Presence Protocol)是一种基于标准通用标记语言的子集XML 的协议,它继承了在XML 环境中灵活的发展性。因此,基于XMPP 的应用具有超强的可扩展性。经过扩展以后的XMPP 可以通过发送扩展的信息来处理用户的需求,以及在XMPP 的顶端建立如内容发布系统和基于地址的服务等应用程序。 阅读详情

相关推荐

Android即时通讯开发实战:使用asmack库

本文还有配套的精品资源,点击获取 简介:asmack-master.zip包含asmack库源代码,是专为Android平台即时通讯开发设计的库,特别是基于XMPP协议的应用。XMPP是一种开放标准的即时通讯协议,支持实时通信和数据交换。asmack库提供了一系列与XMPP服务器交互的API,简化了IM应用的实现,并涵盖了连接管理、会话管理、消息处理等关键功能。开发者通过集...

weixin_42601608的博客 857

Android基于XMPP协议之asmack源码分析

一、整体聊天功能实现的流程1>与openfire服务器建立连接 2>获取连接对象,建立输入输出流 3>开启输入数据流,线程阻塞等待消息,发出消息 4>关闭输入输出流,关闭连接二、解析连接服务器的类XmppConnection首先 XmppConnection调用connect方法连接服务器,这里调用connectUsingConfiguration(config)方法,这里我们看到了私有变量conf

Jacky_Can的博客 1111

Android平台基于XMPP协议的即时通讯应用开发实战

即时通讯(Instant Messaging,IM)是指两个或多个用户之间通过网络实时交换文本、语音、图片等信息的技术。在移动互联网高速发展的背景下,IM功能已成为社交、办公、电商等各类App的核心模块之一。Android平台因其开放性与广泛的设备覆盖,成为IM应用开发的重要战场。目前主流的IM协议包括XMPP(可扩展消息与存在协议)、MQTT(消息队列遥测传输协议)和WebSocket。它们各有特点:XMPP以结构化、可扩展著称;MQTT适合低带宽、高可靠场景;

weixin_42612804的博客 902

android asmack和xmpp的关系,XMPP协议和asmack

更多干货一,什么是XMPPXMPP(Extensible Messaging and Presence Protocol),可扩展消息与存储协议,是目前主流的IM协议之一,它是一种基于XML传输的协议,咱们都知道XML的可扩展性比较强,XMPP使用XML进行传输,使得咱们可使用XMPP发送扩展的消息来知足咱们更多的需求。XMPP包含两部分的定义:一是核心的XML流传输协议,此定义使得XMPP可以在...

weixin_39685674的博客 270

kaggle竞赛平台上数据集下载详解

从kaggle 网站上下载数据集既保证了速度又避免了网络的不稳定造成下载失败问题。该平台也可以上传代码作为自己的代码库,不过本人更习惯将代码上传到github上。希望本人整理的kaggle库使用技巧能够帮助到正在阅读本博客的你。此外还有一篇博客针对kaggle数据集下载问题的几个问题的相关文章进行了整理【博客链接】。

li1784506的博客 2万+

Vercel静态站被墙别慌!手把手教你用Cloudflare免费CDN+域名解析搞定DNS污染

本文详细介绍了如何利用Cloudflare免费CDN和域名解析解决Vercel静态网站遭遇DNS污染的问题。通过诊断DNS污染、设计Cloudflare解决方案架构、实战配置步骤以及高级调优技巧,帮助用户快速恢复站点访问并提升防护能力。

weixin_27442001的博客 677

基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案

在《基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案》一文中,提到尝试使用XMPP协议来实现即时通信。本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不再本文的讨论范围。 一、什么是XMPP? 介绍XMPP之前,我们先来聊聊GTalk。GT

xiaoliang_xie的专栏 1374

下载Python3.10的相关方法及问题解决

下载Python3.10的相关方法及问题解决 报错unable to locate package python3.10-dev以及subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero exit status 1问题解决

Istil 1555

基于XMPP协议的aSmack源码分析

这个UML有些不是很规范,只是为了作为思维路线的记录,怕跟迷路,也不知道有什么好的工具能看源码的,就笨笨的一点点的扣。 This repository doesn't contain much code, it's a build environment! Tracking trunk can be hard. Doing massive changes on top of trunk

Android Explorer 1444

VC Spyglass调试秘籍:从Lint报错到代码修复的完整工作流

本文详细介绍了VC Spyglass调试的完整工作流,重点解析了如何高效定位和修复Lint检查中常见的XMRE-L跨模块引用错误。通过对比GUI与命令行(vc_static_shell)双模式调试技巧,并结合TCL脚本实现批量处理与规则豁免,帮助数字设计工程师系统化地提升代码调试效率与质量。

weixin_29246195的博客 582

IC 笔试真题之吾见——华为实习(1)

前言 今天(2022 04 07)刚建立了一个专栏《IC真题之吾见》,准备记录一些IC真题的见解,为以后找工作做一点准备。 刷题绝不是目的,以题代练,以题代学。 题目来自师兄申请 华为实习“设计”岗位 的笔试真题。 见解大部分来自自己学习的理解,也有部分超纲知识是网络检索得到,希望可以多多在评论区留言交流,共同进步! 有问题的地方也希望可以直接批评指正! 后面也会同步更新此专栏! 1、下列有关时序分析的描述正确的是() A. recovery时间,是指异步控制信号在有效时钟沿到达之后必须保持

记录所学,分享知识,结识挚友 8637

基于asmack开发的Android开源IM客户端

在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前两篇的文章 基于xmpp openfire smack开发之openfire介绍和部署[1] 基于xmpp openfire smack开发之smack类库介绍和使用[2] 1.源码结构

专注Android开发 1308

STM32_HAL库—PWM产生指定个数

(一)CubeMX设置: 1. 晶振配置(72M) 2. 引脚配置 3. 中断配置 4. 配置及实现方式 由上推出公式: 机器周期: (72MHz / 36) = 2MHz = 0.5us PWM周期: 0.5 * 100 = 50us = 20kHz 5. 主函数调用PWM函数 HAL_TIM_PWM_Start_IT(&htim3, TIM_CHANNEL_2); //此处一句后可直接进入中断 6. PWM溢出回调函数 void HAL_TIM_PWM_PulseFinished

5526

基于XMPP协议Android即时通讯开源应用

出处:http://www.open-open.com/lib/view/open1387327663015.html基础架构:http://blog.youkuaiyun.com/lnb333666/article/details/7471292 基于xmpp协议的即时通讯,于是乎,为了简单方便,我便把之前百度推聊换了一个芯:将基于百度云推送改成基于asmack的即时通讯,当然,界面也...

weixin_34242819的博客 82

【异常】Milvus 向量数据库字段缺失错误分析与解决 MilvusVectorStoreServiceV2 - Failed to insert batch [0-1]: The field:

本文分析了Milvus向量数据库插入操作中出现的字段缺失错误。错误显示age_mode字段未提供,导致批量插入失败。根本原因是Milvus Schema要求所有定义字段必须存在,但代码中对部分字段采用条件添加方式。解决方案是将条件添加改为始终添加,为可能为null的字段提供空字符串默认值。文章总结了Schema约束、防御性编程等经验,并建议通过Schema变更检查、单元测试覆盖和数据校验层等预防措施避免类似问题。该问题影响product、mac、source等多个字段,修改后确保了数据插入的可靠性。

奶爸的编程之路,也就一周冷个三天 407

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 738

aSmack调试秘籍:如何快速定位Android XMPP开发难题

aSmack作为Android平台上的XMPP客户端库构建环境,为开发者提供了便捷的即时通讯解决方案。本文将分享一套实用的调试秘籍,帮助开发者快速定位并解决Android XMPP开发过程中遇到的各种难题,提升开发效率。 ## 启用aSmack调试模式的简易方法 在aSmack开发中,启用调试模式是排查问题的第一步。通过分析项目代码可知,aSmack提供了专门的调试类来支持这一功能。 查看[

gitblog_00495的博客 386

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

从Json.NET到System.Text.Json:迁移避坑指南+共存方案(附对比清单)

**Json.NET**(Newtonsoft.Json)是 .NET 生态中使用最广的高性能 JSON 序列化框架,而 .NET 5+ 官方内置的 **System.Text.Json** 正在成为新的默认选择。本文面向新手开发者,用最通俗的方式讲清:从 **Json.NET 迁移到 System.Text.Json** 时最容易踩的 7 个坑、两套 JSON 库如何优雅**共存**,以及一份可

gitblog_01181的博客 483

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

aSmack贡献指南:如何参与XMPP客户端库的开发

aSmack是一个为Android平台构建的XMPP客户端库开发环境,旨在帮助开发者轻松构建功能强大的即时通讯应用。本指南将为你提供完整的贡献流程,从环境搭建到代码提交,助你快速参与到这个开源项目中。 ## 一、准备开发环境 🛠️ ### 1.1 克隆代码仓库 首先需要将项目代码克隆到本地: ```bash git clone https://gitcode.com/gh_mirrors/a

gitblog_00697的博客 458

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

基于xmpp实现android端实现即时通讯---asmack基本方法(三)

简单介绍一下asmack中常用到的方法属性 connection.getAccountManager().createAccount(username, password);  //创建一个用户        roster.removeEntry(roster.getEntry(friendName)); //删除某个好友        roster.setSubscriptionMod

mozhenhau的IT编程学习 9545

aSmack构建教程:从源码到JAR的快速上手指南

想要在Android应用中集成即时通讯功能吗?🤔 aSmack构建环境为您提供了一个完整的解决方案!本文将为您详细介绍如何从源码快速构建aSmack库,让您的Android应用轻松获得XMPP协议支持。aSmack是一个专门为Android平台优化的Smack XMPP客户端库构建环境,虽然项目目前已废弃,但对于需要定制化构建的开发者来说,掌握其构建流程仍然非常有价值。 ## 📋 环境准备与

gitblog_00881的博客 1099

XMPP-Android基于openfire+asmack

一、搭建openfire mysql下载地址:http://pan.baidu.com/s/1qY2a6BU openfire下载地址:http://download.youkuaiyun.com/detail/xsz_1025/9672665 1、安装配置mysql 如果下载的mysql是.exe格式,则无脑安装,以下着重介绍解压版mysql的配置 将压缩包解压到想要安装的位置配置环境

xsz_1025的博客 803

android asmack基于xmpp的即时通讯应用

xmpp是一个通信协议。因为这是个开放的协议,为了节俭开发成本,很多即时应用都采用了这个协议。Android上最常用的组合asmack +openfire。Asmack是smack的android版,是对xmpp协议进行了封装,并提供了丰富的api,简化了操作。Openfire是一个开源的IM服务器,基于Xmpp实现。换句话说使用xmpp开发即时通讯应用的话,服务器端已经开发好了,就是openfi

383

xmpp协议抓包_asmack xmpp应用遇到的问题

项目中遇到要用xmpp做通讯,原来在的应用跑在linux上用的gloox,现在需要在android上来实现,查了下发现smack最近做了一次大升级,4.0.0发布了,最开始用了smack的库,结果在android上报错,去https://community.igniterealtime.org/社区问了下,原来还有个asmack,下了库文件然后写代码:根据asmack-android-8-4.0...

weixin_35653388的博客 523

了解Android, xmpp, asmack以及openfire

Xmpp作为IM的主流协议框架,除了可以进行IM通讯,yekey

Lanttor的技术博文 7091
上一篇: Android数据库高手秘籍(零)——前言[转载]
下一篇: Asmack开发系列之xmlPullParser
minimicall
博客等级 码龄18年 407粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值