websocket大文件发送(分片传送思想)

websocket大文件发送(分片传送思想)目前的项目是在做一款带桌面共享的代码编辑器,其中需要一个发送大文件的功能,传统的node.js处理大文件就是用Buffer.slice(0.offset)的思路把文件分割开,然后通过tcp或udp分开发送。前端中处理二进制的有Blob,它也有slice的方法,也可以将文件拆分开。然后借助websocket发开发送,然后在客户端(注意不是服务端)将文件合并。有人说websocket可以直接发,但是他的大小受到限制,比如发200M的东西,就会出问题。而我的方案就不会存在问题.最主要的是在发送文件的同时也不会影响

大家好,又见面了,我是你们的朋友全栈君。

目前的项目是在做一款带桌面共享的代码编辑器,其中需要一个发送大文件的功能,传统的node.js处理大文件就是用Buffer.slice(0.offset)的思路把文件分割开,然后通过tcp或udp分开发送。前端中处理二进制的有Blob,它也有slice的方法,也可以将文件拆分开。然后借助websocket发开发送,然后在客户端(注意不是服务端)将文件合并。有人说websocket可以直接发,但是他的大小受到限制,比如发200M的东西,就会出问题。而我的方案就不会存在问题.最主要的是在发送文件的同时也不会影响到桌面共享的速度。

效果图:websocket大文件发送(分片传送思想)

 

下面是两个客户端发送和接受的代码:

   发送方:

核心方法如下,注意tp参数代表的是你上传的文件或者采用拖动传入的文件,类型是blob

function sendBig(tp){
	var pack_id="pk_"+Math.floor(Math.random()*100000);	
	var len=tp.size;
	var sz=[]; 
	kg=true;
	var k=0;
		 if(len>16*1024){
			var p=Math.ceil(len/(16*1024))
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157604.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python批量生成测试用例_系统测试用例的编写依据

    python批量生成测试用例_系统测试用例的编写依据前言写用例之前,我们应该熟悉API的详细信息。建议使用抓包工具Charles或AnyProxy进行抓包。har2case我们先来了解一下另一个项目har2case他的工作原理就是将当前主流的抓

    2022年7月29日
    5
  • 用html设计一个静态网页_学生个人静态网页制作模板

    用html设计一个静态网页_学生个人静态网页制作模板用HTML和CSS制作简单的静态网页(小米商城)网页效果如下:代码如下(第一次写静态网页,中间css代码和html代码没有分离,所以代码可能有点乱还请见谅)1、css代码 /*——————————————–01———————————————————–*/ *{ margin:0; padding:0; } /*清除标

    2022年9月4日
    2
  • 利用opacity属性写过渡效果

    利用opacity属性写过渡效果opacity的意思是不透明性,opacity取值范围为0-1;opacity:0;表示完全透明,opacity:1;表示完全不透明。opacity:0于overflow:hidden不同,overflow:hidden会完全消除空间,opacity:0只是视觉上看不到,但是实际上会占用空间,这点我们常用来于:hover一起使用。<!DOCTYPEhtml><htmll…

    2022年5月25日
    56
  • 二项式分布和超几何分布有什么区别_多项分布的协方差

    二项式分布和超几何分布有什么区别_多项分布的协方差原文转自:http://hi.baidu.com/leifenglian/item/636198016851cee7f55ba652一、前言参数估计是一个重要的话题。对于典型的离散型随机变量分布:二项式分布,多项式分布;典型的连续型随机变量分布:正态分布。他们都可以看着是参数分布,因为他们的函数形式都被一小部分的参数控制,比如正态分布的均值和方差,二项式分布事件发生的概

    2022年10月9日
    0
  • 使用matplotlib绘制折线图,柱状图,柱线混合图「建议收藏」

    使用matplotlib绘制折线图,柱状图,柱线混合图「建议收藏」matplotlib介绍Matplotlib是Python的绘图库。它可与NumPy一起使用,提供了一种有效的MatLab开源替代方案。它也可以和图形工具包一起使用,如PyQt和wxPython。安装Matplotlib库命令:在cmd命令窗口输入pipinstallmatplotlib。matplotlib绘制折线图绘制一条折线的折线图#-*-c…

    2022年5月31日
    62
  • 克莱因瓶莫比乌斯带_克莱因瓶剪莫比乌斯带

    克莱因瓶莫比乌斯带_克莱因瓶剪莫比乌斯带  [克莱茵瓶&莫比乌斯带]在1882年,著名数学家菲立克斯·克莱因(FelixKlein)发现了后来以他的名字命名的著名“瓶子”。这是一个象球面那样封闭的(也就是说没有边)曲面,但是它却只有一个面。在图片上我们看到,克莱因瓶的确就象是一个瓶子。但是它没有瓶底,它的瓶颈被拉长,然后似乎是穿过了瓶壁,最后瓶颈和瓶底圈连在了一起。如果瓶颈不穿过瓶壁而…

    2022年9月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号