iOS--XMPP文件传输
来源:互联网 发布:淘宝网吸顶灯 编辑:程序博客网 时间:2024/06/08 19:42
IM一个项目中需要文件传输, 研究了 总结下
XEP-0096: File Transfer 传输文件的统一接口, 客户端之间用它来协商到底采用哪种具体的传输方式, 包括以下三种:
1.XEP-0047: In-Band ByteStreams 带内字节流, 这个协议可用于小数据量传输, 只是用字节流传输, (图片可以, 语音压缩好也可以).
带内, 顾名思义, 就是夹带在XML流中, 通过xmpp服务器中转传输, 具体用法是把数据用base64编码放在XML流传给对方. 此方法简单, 但是不好, base64编码效率低, 而且所有数据必须由服务器中转(字符串格式的数据中转)
2.XEP-0066:Out of Band Data 带外字节流, 带内走不通就走带外, 也就是不经过xmpp服务器. 这个用法在发起传输的客户端临时建立起一个htpp服务(当然也可以是别的服务), 把自己的ip和端口号, 通过xmpp消息, 告诉接收方, 让对方直接来下载. 但是这个方法有一个问题, 发送一方必须是公网ip, 否则对方无法访问. 注:目前Pandion, linq支持这个XEP
3.XEP-0065: Socket5 ByteStreams Socket5字节流, 使用SOCKET5传输文件, 有直连式和代理传输两种方式. 发送方把预定的ip和端口(通过xmpp消息)告诉给接收方. 如果双方在公网, 采用socket5 直接传输, 如果任何一方在内网, 经过socket5代理服务器传输, 发送方把代理服务器的ip和端口号告诉给接收方. 这里的socket5代理服务器和通用的代理服务器稍有差别, 因为他需要通过发送方提出的一个sessionID由xmpp服务器通知socket5服务器把双方的socket5通道连通, 也就是激活. 注: 目前Psi, Ling支持这个XEP.
最后项目采用的就是socket5代理服务器的传输, 虽然有些折腾, 效率还行.
- iOS--XMPP文件传输
- ios xmpp 文件传输
- XMPP 文件传输
- XMPP文件传输过程
- XMPP文件传输分析
- openfire文件传输-xmpp
- XMPP 文件传输协议
- xmpp 文件传输 socks5方式
- XMPP文件传输过程
- XMPP文件传输过程
- XMPP之文件传输报文
- XMPP通讯开发-好友文件传输
- XMPP文件传输协议(一)
- XMPP系列(五)---文件传输
- XMPP 两个客户端实现文件传输
- XMPP iOS
- xmpp ios
- iOS xmpp
- JS多级联动下拉列表(不限级数)
- JS获取GET请求中QueryString中的参数
- Linux命令学习:alias
- Hi3518学习:编译osdrv
- UVALive - 3644 - X-Plosives (并查集!!)
- iOS--XMPP文件传输
- altium designer生成gerber文件和NC Drill文件
- orcad capture WARNING(ORCAP-36038): 解决办法
- 提高Java架构师和程序员效率的10个工具
- 自定带清除和动画提示的EditText
- 摄像头模组工作原理与公司列表
- UVa 12118 - Inspector's Dilemma <欧拉道路+DFS>
- (五)Spring核心框架 - IOC与DI的理论本质
- 注胶隔热型材加工过程中常见问题处理三