agsXMPP + Openfire 即时通讯开发(二) 【文件传输】
上篇bolg(agsXMPP + Openfire 即时通讯开发(一) 【agsXMPP 连接 Openfire】)中agsXMPP的MiniClient已经可以相互之间进行通讯了,本篇介绍如何进行文件传输。
首先我们需要了解XMPP文件传输的整个对话过程:
这篇文章写的比较详细
或者你可以查看XMPP源文档
XEP-0052 (PDF)
通过阅读以上文档我们已经了解XMPP传输文件前的对话过程,接下来按照上面的步骤完成消息对话。
当然前提是需要你看懂MiniClient的XML收发代码,其实在文件传输过程中,70%的时间我都花费在阅读agsXMPP 的代码上了,20%调试,10%才是我对代码的改动。
注意: 1、获取代理服务器后,与代理服务器通信的Jid需要这样获得
Jid jid = new Jid("proxy.127.0.0.1")
当你获取代理服务器资源和激活数据流的过程中需要用这个jid。
2、在同一次文件传输过程中xml消息的SID,都应该保持一致,同时Socket5连接的SID也应该为同一个SID。
3、无论文件接收端链接代理还是文件发送端链接代理,Socket5链接的Initiator属性设置为文件发送端的Jid,Target属性设置为文件接收端的Jid。
转载于:https://my.oschina.net/knife2013/blog/681064
agsXMPP + Openfire 即时通讯开发(二) 【文件传输】相关推荐
- Android 即时通讯开发小结(二)
<Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 相关推荐阅读:. Android即时通讯 ...
- im即时通讯开发:移动端需要面对的问题
统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题. P2P还是服务器中转? IM通讯方式无非两种选择:设备直连(P2P)和通过服务器中转. 1P2P ...
- IOS 即时通讯开发平台(SDK)
一.系统介绍 BRAChat for iOS SDK是一套即时通讯开发平台(SDK),包含了音视频处理模块与P2P网络模块两大部分,是BRAChat Platform Core SDK的重要组成部分, ...
- im即时通讯开发的那些坑:架构设计、通信协议和客户端
有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战 ...
- 谈谈即时通讯开发平台
由于即时通讯系统的复杂性和对服务器稳定性的很高要求,一般即时通讯系统开发至少需要1年左右的时间,而这还只是测试版,离"稳定"还有一定距离,而这时匆匆上马的不稳定的系统会让你失去用户 ...
- Android 即时通讯开发小结(一)
本文将基于 IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 客户端架构 作为一个 IM 软件,最重要的一个特性就是保证消息的达到率和实时性. ...
- im即时通讯开发:高可用、易伸缩、高并发的IM群聊、单聊架构方案设计
要实现一整套能用于大用户量.高并发场景下的IM群聊,技术难度远超IM系统中的其它功能,原因在于:IM群聊消息的实时写扩散特性带来了一系列技术难题. 举个例子:如一个2000人群里,一条普通消息的发出问 ...
- 盘点im即时通讯开发中Android后台保活方案
对于IM应用和消息推送服务的开发者来说,在Android机型上的后台保活是个相当头疼的问题. 老板一句:"为什么微信.QQ能收到消息,而你写的APP却不行?",直接让人崩溃,话说老 ...
- im即时通讯开发:IM通信协议设计详解
本文要谈的IM通信协议指的是应用层通信"语言",并非指传输层协议(如TCP.UDP).IM通信协议的制定是IM开发中起点,也是贯穿设计.开发.运维始终的核心所在,通信协议设计的好坏 ...
最新文章
- 结构体对齐原理【转】
- 苹果开年第一购!买下仅24名员工的AI音乐公司,可根据环境动态生成音乐
- composer 完整路径才能访问_Win7系统IIS,无法访问ASP,提示错误 '80004005'
- 在Windows上运行单节点的Cassandra
- 神奇的折纸艺术!无限翻转完全停不下来
- 融资租赁业务的基本知识
- markdown编辑器 使用语法
- zookeeper 进入客户端_Zookeeper基础知识简单介绍
- End-to-End Object Detection with Transformers的部分解读
- Linux实用小工具
- 以太网测试仪的RFC2544测试你了解吗?
- ADF单位根检验三种形式_【EViews】面板数据的处理方法及检验步骤
- Word空格自动加下划线
- Mean Rank 和Mean reciprocal rank
- 【IT精英】IT传奇人物比尔盖茨的故事
- 没想到这一天来的这么快 大数据之下再无隐私
- 《21天转型微服务实战营》 学习笔记
- 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
- 关于AVCC与ADCC不一致的问题
- Django中app的model相互引用问题
热门文章
- VSFTP 显示与系统时间不相符的解决方式
- eventfd的用法
- 打印机常见问题与解决方法 1
- remove和removeat之间的区别?
- matlab分布函数逆函数,MATLAB如何使用icdf函数计算指定分布的逆累积分布
- Ghost 博客系统终极安装教程,装不上来打我!
- tcping扫描所有端口_tcping端口检测工具使用
- JEECG 3.6.6 新春版本发布,企业级JAVA快速开发平台
- encodeURI encodeURIComponent 的区别,和使用场景
- android ffmpeg+OpenGL播放yuv+openSL 快放 慢放 视频播放器