文档章节

综合技术 --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和端口发送给接收方。


© 著作权归作者所有

共有 人打赏支持
求是科技
粉丝 90
博文 438
码字总数 226162
作品 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
Openfire与XMPP协议

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

postdep
2013/12/25
0
0
移动 IM 学习笔记[转]

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

强子哥哥
2016/05/25
143
2
Androidpn 简单实现及分析

(文中部分内容来自网络) XMPP协议: XMPP : The Extensible Messaging andPresence Protocol. 中文全称:可扩展通讯和表示协议. 简介:可扩展通讯和表示协议 (XMPP) 可用于服务类实时通讯、表示...

明舞
2014/08/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
1
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
4
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
1
0
技术工坊|如何开发一款以太坊钱包(深圳)

【好消息!】HiBlock区块链技术工坊已经成功举办了26期,其中北京1期,西安1期,成都2期,上海22期。经常有社区的小伙伴问定期举办技术工坊的除了上海以外,其他城市有没有?现在区块链技术工...

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部