概述
目前的项目是在做一款带桌面共享的代码编辑器,其中需要一个发送大文件的功能,传统的node.js处理大文件就是用Buffer.slice(0.offset)的思路把文件分割开,然后通过tcp或udp分开发送。前端中处理二进制的有Blob,它也有slice的方法,也可以将文件拆分开。然后借助websocket发开发送,然后在客户端(注意不是服务端)将文件合并。有人说websocket可以直接发,但是他的大小受到限制,比如发200M的东西,就会出问题。而我的方案就不会存在问题.最主要的是在发送文件的同时也不会影响到桌面共享的速度。
效果图:
下面是两个客户端发送和接受的代码:
发送方:
核心方法如下,注意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))
最后
以上就是认真歌曲为你收集整理的websocket大文件发送(分片传送思想)的全部内容,希望文章能够帮你解决websocket大文件发送(分片传送思想)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复