一、 现象

从日常使用微信文件助手来看,每次从电脑端通过文件助手,传输文件到手机,发现文件都是先传到服务端,完成后再从服务端传到手机端,花了上传和下载两份时间。为什么不能在PC端上传的时候,手机端就开始下,服务端建立一个管道队列,以FIFO的方式处理流数据,并且创建数据的副本存于服务端,这样实时获得数据,时间减少一半岂不美哉?

二、分析

  1. 文件传输的方式
            笔者猜测是通过TCP协议,以安全的方式传输文件。在传输之前,需要对文件预处理,并且拆分成一个个的报文,以某种策略,比如滑动窗口的方式,上传至服务器,如果数据丢失需要重传。服务器以报文的标志位来排序,最终拆掉协议外套,拼装数据。
  2. 服务端的任务
           服务器作为接收方获得客户端的数据,再以发送方给其他端同步。目前微信仅支持一个PC端和一个移动端两头登录,其实服务器的作用就是中介,并且保存了文件的副本。
  3. 为何不同步进行传输(以下内容仅凭推论)
    假设有以下角色:客户端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币相关的业务比较赚钱,微信的收入直观上是来自广告的,其他的不敢乱讲。
        最后一点小的建议,当微信的两个端处于同一局域网的时候,可以采用局域网直达的传输,然后服务端备份的那个可以慢慢再网上传,这样速度有保证,数据有备份。

为什么微信的文件助手不是点对点传输?相关推荐

  1. 微信视频文件过大,无法传输?教你一招快速压缩文件!

    我们都知道微信之间可以进行文件传输,但是有一定的限制,那就是文件需要在30M之内才可以,文件大小超过这个数值是不可以的,那么微信中的视频文件该如何传输呢?教你一招,快速解决! 一般来说,微信中的视频文 ...

  2. 自制微信文件传输助手,实现数据安全传输与存储

    从日常使用微信文件传输助手来看,传输助手并非点对点传输,所有信息在传输中都将被中转存储在公用服务器上,传输信息的安全性难以得到保障.本文将基于 fiora 开源项目,以目的为导向重写项目,自制文件传输 ...

  3. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  4. 用PHP查看微信撤回的消息,python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  5. 文件在计算机系统储存具体位置,电脑微信的文件储存位置怎么打开

    电脑微信的文件储存位置怎么打开 腾讯视频/爱奇艺/优酷/外卖 充值4折起 微信是我们现在经常使用的社交软件之一,在电脑上也可以使用微信软件,接下来小编就教大家怎样打开微信软件的文件储存位置. 具体如下 ...

  6. js可以打开mat文件吗_企业微信最大可以传多大文件?企业微信发送文件有限制吗?...

    使用企业微信营销管理时,可以让我们的工作交流沟通更加高效便捷,在日常办公中,我们时常有传文件的需求,这时就可以使用企业微信进行文件传输,那么你知道企业微信最大可以传多大文件吗?企业微信发文件会有限制吗 ...

  7. 微信群机器人助手多群同步群发消息,管理100个微信群!

    社群运营,为什么需要微信群机器人助手?一般,在日常工作中需要针对大批量的微信群进行管理,用户数量非常庞大,单靠个人是很难运营管理的,所以需要微信群机器人助手来协助工作. 而且,无论社群是什么属性,都适 ...

  8. 能一次性管理10--20个群的微信群机器人助手到底有多好用!

    建群容易,维护群难,群多,群成员多,想要维护好,需要花费大量的时间和精力的.我们的微信群机器人助手可以解决我们不少问题. 群数据统计 拥有的群数据统计功能,它可以帮助你分析群人数走向,掌握进退群人数. ...

  9. 基于 Wachaty 开发微信机器人 个人微信号小助手平台

    wxbot 微信机器人,个人微信号小助手平台, nodejs + nuxt + wechaty 技术栈 准备 微信机器人开源库调研,GitHub 找到以下 3 个开源作品: itchat itchat ...

最新文章

  1. 四种常用的垃圾收集器
  2. java servletconfig_ServletConfig中的方法
  3. 【DirectX12】2.示例三角形绘制
  4. Axure RP Pro 6.0 原型设计工具(产品经理必备)
  5. [JavaWeb-MySQL]DDL_操作数据库,表
  6. Servlet和JSP之间的区别
  7. ubuntu 18.04 vi里面方向键变成abcd 处理办法
  8. 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?
  9. MapInfo地图投影的添加
  10. PHP购物网站(含购物车、全部源码、数据库设计表及其源码)
  11. IE下判断IE版本的语句...[if lte IE 8]……[endif]
  12. 操作系统文件的物理结构(文件分配方式)
  13. 刨根系列 之 Unity3D UGUI 背后的工作原理
  14. VOT目标路径可视化
  15. 1.6 mocha配置文件的使用
  16. 开始做一个简单的记账工具
  17. netbackup备份mysql_NetBackup备份Oracle数据库失败-nbu
  18. 计算机主机如何睡眠,电脑如何设置睡眠
  19. JAVA 浏览器下载excel,自定义样式:合并单元格,设置多种背景填充颜色,冻结窗格
  20. 数据库中 PK FK UK CK DF 的意思

热门文章

  1. Boost.Asio 技术文档
  2. 【毕业N年系列】 毕业第四年
  3. 百度2019校招计算机视觉方向笔试题
  4. 2021.1.18-1.25 人工智能行业每周技术动态
  5. skydive前端代码框架分析
  6. Mac OS GMT安装与使用
  7. 趋向于符号,趣味编程
  8. od 追踪_裁判员行为规范【基本功】——追踪裁判违例宣判练习 / 带球走违例
  9. 微信公众号开发之关注推送图文消息
  10. 阿里云存储OSS(服务端直传)