为什么微信的文件助手不是点对点传输?
一、 现象
从日常使用微信文件助手来看,每次从电脑端通过文件助手,传输文件到手机,发现文件都是先传到服务端,完成后再从服务端传到手机端,花了上传和下载两份时间。为什么不能在PC端上传的时候,手机端就开始下,服务端建立一个管道队列,以FIFO的方式处理流数据,并且创建数据的副本存于服务端,这样实时获得数据,时间减少一半岂不美哉?
二、分析
- 文件传输的方式
笔者猜测是通过TCP协议,以安全的方式传输文件。在传输之前,需要对文件预处理,并且拆分成一个个的报文,以某种策略,比如滑动窗口的方式,上传至服务器,如果数据丢失需要重传。服务器以报文的标志位来排序,最终拆掉协议外套,拼装数据。 - 服务端的任务
服务器作为接收方获得客户端的数据,再以发送方给其他端同步。目前微信仅支持一个PC端和一个移动端两头登录,其实服务器的作用就是中介,并且保存了文件的副本。 - 为何不同步进行传输(以下内容仅凭推论)
假设有以下角色:客户端A <=> 服务器S <==> 客户端B
① 服务端需要维护一系列缓存队列,如果A->S->B,B出现阻塞,会影响A的上传;
② 服务端需要建立P2P代理机制,来处理A->S,S->B两段错误重传:A->S失败的需要A重传,A->S成功但是S->B失败可以让S拿副本的缓存传给B
③ 服务端需要对副本的保存将受到②的影响,只有A->S失败才会修改副本数据
三、结论(基于浅显的认知)
微信作为免费使用的工具,有文件传输服务已经很不错了,绝对不会强求更多极致的服务了。而QQ是有在线传输和离线传输两种模式的,毕竟QQ有Q币相关的业务比较赚钱,微信的收入直观上是来自广告的,其他的不敢乱讲。
最后一点小的建议,当微信的两个端处于同一局域网的时候,可以采用局域网直达的传输,然后服务端备份的那个可以慢慢再网上传,这样速度有保证,数据有备份。
为什么微信的文件助手不是点对点传输?相关推荐
- 微信视频文件过大,无法传输?教你一招快速压缩文件!
我们都知道微信之间可以进行文件传输,但是有一定的限制,那就是文件需要在30M之内才可以,文件大小超过这个数值是不可以的,那么微信中的视频文件该如何传输呢?教你一招,快速解决! 一般来说,微信中的视频文 ...
- 自制微信文件传输助手,实现数据安全传输与存储
从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障.本文将基于 fiora 开源项目,以目的为导向重写项目,自制文件传输 ...
- python第三方库文件传输助手_python实现文件助手中查看微信撤回消息
利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...
- 用PHP查看微信撤回的消息,python实现文件助手中查看微信撤回消息
利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...
- 文件在计算机系统储存具体位置,电脑微信的文件储存位置怎么打开
电脑微信的文件储存位置怎么打开 腾讯视频/爱奇艺/优酷/外卖 充值4折起 微信是我们现在经常使用的社交软件之一,在电脑上也可以使用微信软件,接下来小编就教大家怎样打开微信软件的文件储存位置. 具体如下 ...
- js可以打开mat文件吗_企业微信最大可以传多大文件?企业微信发送文件有限制吗?...
使用企业微信营销管理时,可以让我们的工作交流沟通更加高效便捷,在日常办公中,我们时常有传文件的需求,这时就可以使用企业微信进行文件传输,那么你知道企业微信最大可以传多大文件吗?企业微信发文件会有限制吗 ...
- 微信群机器人助手多群同步群发消息,管理100个微信群!
社群运营,为什么需要微信群机器人助手?一般,在日常工作中需要针对大批量的微信群进行管理,用户数量非常庞大,单靠个人是很难运营管理的,所以需要微信群机器人助手来协助工作. 而且,无论社群是什么属性,都适 ...
- 能一次性管理10--20个群的微信群机器人助手到底有多好用!
建群容易,维护群难,群多,群成员多,想要维护好,需要花费大量的时间和精力的.我们的微信群机器人助手可以解决我们不少问题. 群数据统计 拥有的群数据统计功能,它可以帮助你分析群人数走向,掌握进退群人数. ...
- 基于 Wachaty 开发微信机器人 个人微信号小助手平台
wxbot 微信机器人,个人微信号小助手平台, nodejs + nuxt + wechaty 技术栈 准备 微信机器人开源库调研,GitHub 找到以下 3 个开源作品: itchat itchat ...
最新文章
- 四种常用的垃圾收集器
- java servletconfig_ServletConfig中的方法
- 【DirectX12】2.示例三角形绘制
- Axure RP Pro 6.0 原型设计工具(产品经理必备)
- [JavaWeb-MySQL]DDL_操作数据库,表
- Servlet和JSP之间的区别
- ubuntu 18.04 vi里面方向键变成abcd 处理办法
- 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?
- MapInfo地图投影的添加
- PHP购物网站(含购物车、全部源码、数据库设计表及其源码)
- IE下判断IE版本的语句...[if lte IE 8]……[endif]
- 操作系统文件的物理结构(文件分配方式)
- 刨根系列 之 Unity3D UGUI 背后的工作原理
- VOT目标路径可视化
- 1.6 mocha配置文件的使用
- 开始做一个简单的记账工具
- netbackup备份mysql_NetBackup备份Oracle数据库失败-nbu
- 计算机主机如何睡眠,电脑如何设置睡眠
- JAVA 浏览器下载excel,自定义样式:合并单元格,设置多种背景填充颜色,冻结窗格
- 数据库中 PK FK UK CK DF 的意思