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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网吧服务器发消息,网吧盗号常见途径总结以及解决办法

    网吧服务器发消息,网吧盗号常见途径总结以及解决办法近期有部分网吧反馈,网吧随机出现盗号问题,主要反馈现像是:QQ提示账号异常登录和乱发消息等、CF/wegame/吃鸡账号被盗等目前发现盗号问题主要有以下几种途径:一.网吧本地内部环境中毒引起的盗号问题1.服务器中毒处理方法:服务器安装火绒,查杀下C盘和内存,查完杀完毒后把火绒卸载掉以免识杀游戏文件2.服务器被入侵,加入了开机启动项带第三方增值引起处理方法:将启动项先关掉,一项一项加上去测试,直到…

    2022年7月26日
    24
  • Ubuntu(Linux)虚拟机的安装教程(最为详细)「建议收藏」

    title:Linux(Ubuntu)虚拟机的安装教程(最为详细)date:2020-06-2911:33tags:LinuxUbuntucategories:LinuxLinux(Ubuntu)虚拟机的安装教程(最为详细)当年文鸯“以匹马入数千骑中,辄杀伤百馀人,乃出,如此者六七,追骑莫敢逼。”,现在我阿猿七删七下Ubuntu,哭~~,真的要崩溃,不过我终修的大成。以后我也可以说出我已经熟练的掌握了Ubuntu系统的删除和安装。这时就有小伙伴要问了,我不.

    2022年4月13日
    63
  • FreeWebHostingArea_Freefilesync

    FreeWebHostingArea_Freefilesync http://bbs.et8.net/bbs/showthread.php?t=896519hostingsiteshttp://www.orbitfiles.com/http://filexoom.com/http://www.sendthisfile.com/http://www.albumtown.com/http://app02.bonpoo.com/f

    2022年10月8日
    2
  • netdata mysql_Netdata介绍及安装部署

    netdata mysql_Netdata介绍及安装部署Netdata是一款Linux性能实时监测工具。Netdata是Linux系统实时性能监测工具,提供web界面的界面视角。它用可视化的手段,将被监测者最细微的细节,展现了出来。这样,你便可以清晰地了解你的系统和应用程序此时的状况。优美的界面:bootstrap框架下的控制界面自定义的控制界面:你可以使用简单的HTML代码去自定义控制界面(不需要使用javascript)极其的快速而高效:程序…

    2025年7月5日
    3
  • idea激活码2021.10.3【2021最新】

    (idea激活码2021.10.3)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月27日
    37
  • 经典C面试题

    经典C面试题

    2021年11月30日
    38

发表回复

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

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