文档章节

综合技术 --xmpp文件传输

求是科技
 求是科技
发布于 2015/06/18 16:47
字数 631
阅读 42
收藏 0

xmpp中的文件传输

http://www.aichengxu.com/view/8686

方案一:把文件先转成nsdata存储,然后再放到nsstring中,以消息的形式发送给对方,对方接收后,将nsstring转回nsdata,然后再转成你需要的格式即可。效率不高,但容易实现。


发送语音图片有三种方法

1.xmpp smack,文件传输方式

2.文本流

3.服务器中转

服务器中转方式:

1.主持人画画,生成图片

2.将图片传到 数据服务器上,指定路径

3.将该指定路径发往xmpp服务器

4.xmpp服务器转发 指定路径 给房间里所有的用户

5.每个用户请求 数据服务器,下载图片直接显示


http://www.cnblogs.com/imlucky/archive/2011/10/20/2218780.html

xmpp是一种xml技术,主要用于解决即时消息发送和接收,xml流技术并不适用于大数据量的传输。

在xmpp中,信息传输是所谓的字符传输;而数据传输则是字节流传输(bytestreams)。

xmpp中,客户端之间文件传输方式有如下三种:

1.xep-0047:In-Band ByteStreams  带内字节流,这个协议适用于小数据量传输,它采用的是字节流传输方式。带内,指的是夹带在xml流中,通过xmpp服务器中转传输,具体做法是将数据用base64编码后放在xml流中传给对方。这个方法不好,base64编码效率低,而且所有的数据必须都由xmpp服务器中转。

2.xep-0066:Out of Band Data 带外字节流,带内不行就走带外,也就是不经过xmpp服务器。具体做法是在发起端临时建立一个http服务(当然也可以是别的服务),将数据放在这个服务器上,将数据服务器的ip和端口通过xmpp消息发送给接收方,让接收方直接去指定地址下载。注意:数据服务器一定要是公网ip,否则接收方无法访问。

3.xep-0065:SOCKS5 ByteStreams  SOCKS5字节流,使用SOCKS5传输文件,有直连方式和代理传输两种方式。发送方将预定的ip和端口(通过xmpp消息)发送给接收方。如果双方都在公网,采用SOCKS5直接传输。如果任何一方在内网,经过SOCKS5代理服务器传输,发送方将代理服务器的ip和端口发送给接收方。


© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 91
博文 444
码字总数 228569
作品 0
成都
后端工程师
私信 提问
通过XMPP协议实现即时通讯介绍

四种即时通讯协议 概述 目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)以及XMPP。PRIM与XMPP、 SIMPLE类似,...

崔同亮
2014/01/22
0
0
agsXMPP + Openfire 即时通讯开发(二) 【文件传输】

上篇bolg(agsXMPP + Openfire 即时通讯开发(一) 【agsXMPP 连接 Openfire】)中agsXMPP的MiniClient已经可以相互之间进行通讯了,本篇介绍如何进行文件传输。 首先我们需要了解XMPP文件传输...

xiao刀
2016/05/25
175
0
移动 IM 学习笔记[转]

转: http://ruby-china.org/topics/22530 最近在看移动IM相关的资料, 然后发现网上有很多的资料,所以在学习过程中,整理了一些笔记, 供那些 想了解 移动IM的童鞋一些参考。 移动IM技术选型...

强子哥哥
2016/05/25
143
2
Openfire与XMPP协议

什么是OpenFire Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。   您可以使用它轻易的构建高效率的即时通信服务器。Openfire安装和使用都非常简单,并利用W...

postdep
2013/12/25
0
0
Android asmack使用介绍

XMPP协议简介 XMPP协议(Extensible Messaging and PresenceProtocol,可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决及时通信标准而提出来的,最早是在Jabber上实现的。它继...

让代码飞一会
2015/07/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

第1章

背景:因为最近在考教师资格证,考的是计算机学科,所以学科考的是:信息技术学科知识与教学能力;因此图书馆借了一本书,把最基本的知识看一遍,为之后的笔试和面试做充足的准备。 大学计算...

怪咖先生forever
32分钟前
1
0
element-ui之el-collapse-transition(折叠展开动画)源码解析学习

项目中发现同事使用了element-ui的el-collapse-transition来做折叠展开效果,打开源码看了下发现挺有意思,来解析学习一番。 el-collapse-transition的引入方式 // fade/zoom 等import 'e...

学霸猫
53分钟前
1
0
解释器模式_实战

前言 解释器模式是什么?这个设计模式其实比较冷门,不太会解释,用例子说明把。解释器模式一般用在sql,xml,json解析等场景。比如说你有一个json对象,你要获取这个对象中任意一个节点的值。...

grace_233
今天
6
0
告别2018

今天中午从喵喵家回来之后,倒头就睡到下午4点了。可能是之前透支的身体,在我放松下来后,开始觉得疲惫了,所以最近估计会进入嗜睡期。醒来之后,拿了包花生,开了瓶低糖菊花茶,听着网易云...

七木网络科技
今天
4
0
MySql数据库分表分区实践

1. 背景 —— 公司物联网项目 海量设备通过物联网服务接入云端,设备每30s上报一次自身数据(以下称为动态数据)。 物联网服务将设备上报的数据转发给数据处理网关,由数据入库网关执行批量入...

吴伟祥
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部