上篇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 即时通讯开发(二) 【文件传输】相关推荐

  1. Android 即时通讯开发小结(二)

    <Android 即时通讯开发小结>基于IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 相关推荐阅读:. Android即时通讯 ...

  2. im即时通讯开发:移动端需要面对的问题

    统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题. P2P还是服务器中转? IM通讯方式无非两种选择:设备直连(P2P)和通过服务器中转. 1P2P ...

  3. IOS 即时通讯开发平台(SDK)

    一.系统介绍 BRAChat for iOS SDK是一套即时通讯开发平台(SDK),包含了音视频处理模块与P2P网络模块两大部分,是BRAChat Platform Core SDK的重要组成部分, ...

  4. im即时通讯开发的那些坑:架构设计、通信协议和客户端

    有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着大量的挑战 ...

  5. 谈谈即时通讯开发平台

    由于即时通讯系统的复杂性和对服务器稳定性的很高要求,一般即时通讯系统开发至少需要1年左右的时间,而这还只是测试版,离"稳定"还有一定距离,而这时匆匆上马的不稳定的系统会让你失去用户 ...

  6. Android 即时通讯开发小结(一)

    本文将基于 IM Andriod 开发的各种常见问题,结合网易云信即时通讯技术的实践,对 IM 开发做一个全面的总结. 客户端架构 作为一个 IM 软件,最重要的一个特性就是保证消息的达到率和实时性. ...

  7. im即时通讯开发:高可用、易伸缩、高并发的IM群聊、单聊架构方案设计

    要实现一整套能用于大用户量.高并发场景下的IM群聊,技术难度远超IM系统中的其它功能,原因在于:IM群聊消息的实时写扩散特性带来了一系列技术难题. 举个例子:如一个2000人群里,一条普通消息的发出问 ...

  8. 盘点im即时通讯开发中Android后台保活方案

    对于IM应用和消息推送服务的开发者来说,在Android机型上的后台保活是个相当头疼的问题. 老板一句:"为什么微信.QQ能收到消息,而你写的APP却不行?",直接让人崩溃,话说老 ...

  9. im即时通讯开发:IM通信协议设计详解

    本文要谈的IM通信协议指的是应用层通信"语言",并非指传输层协议(如TCP.UDP).IM通信协议的制定是IM开发中起点,也是贯穿设计.开发.运维始终的核心所在,通信协议设计的好坏 ...

最新文章

  1. 结构体对齐原理【转】
  2. 苹果开年第一购!买下仅24名员工的AI音乐公司,可根据环境动态生成音乐
  3. composer 完整路径才能访问_Win7系统IIS,无法访问ASP,提示错误 '80004005'
  4. 在Windows上运行单节点的Cassandra
  5. 神奇的折纸艺术!无限翻转完全停不下来
  6. 融资租赁业务的基本知识
  7. markdown编辑器 使用语法
  8. zookeeper 进入客户端_Zookeeper基础知识简单介绍
  9. End-to-End Object Detection with Transformers的部分解读
  10. Linux实用小工具
  11. 以太网测试仪的RFC2544测试你了解吗?
  12. ADF单位根检验三种形式_【EViews】面板数据的处理方法及检验步骤
  13. Word空格自动加下划线
  14. Mean Rank 和Mean reciprocal rank
  15. 【IT精英】IT传奇人物比尔盖茨的故事
  16. 没想到这一天来的这么快 大数据之下再无隐私
  17. 《21天转型微服务实战营》 学习笔记
  18. 3D车道线检测能否成为自动驾驶的核心?盘一盘近三年的SOTA论文!
  19. 关于AVCC与ADCC不一致的问题
  20. Django中app的model相互引用问题

热门文章

  1. VSFTP 显示与系统时间不相符的解决方式
  2. eventfd的用法
  3. 打印机常见问题与解决方法 1
  4. remove和removeat之间的区别?
  5. matlab分布函数逆函数,MATLAB如何使用icdf函数计算指定分布的逆累积分布
  6. Ghost 博客系统终极安装教程,装不上来打我!
  7. tcping扫描所有端口_tcping端口检测工具使用
  8. JEECG 3.6.6 新春版本发布,企业级JAVA快速开发平台
  9. encodeURI encodeURIComponent 的区别,和使用场景
  10. android ffmpeg+OpenGL播放yuv+openSL 快放 慢放 视频播放器