webRTC(十五):webrtc 文件实时传输

const downloadAnchor = document.querySelector(‘a#download’);

const sendProgress = document.querySelector(‘progress#sendProgress’);

const receiveProgress = document.querySelector(‘progress#receiveProgress’);

const btnSendFile = document.querySelector(‘button#sendFile’);

const btnAbort = document.querySelector(‘button#abortButton’);

var localStream = null;

var roomid = ‘111111’;

var socket =null;

var state = ‘init’;

var pc = null;

var dc = null;

// 文件传输

var offerdesc = null;

var state = ‘init’;

var fileReader = null;

var fileName = “”;

var fileSize = 0;

var lastModifyTime = 0;

var fileType = “data”;

var receiveBuffer = [];

var receivedSize = 0;

var pcConfig={

‘iceServers’:[{

‘urls’:‘turn:121.41.76.43:3478’,

‘credential’:‘123456’,

‘username’:‘huang’

}]

}

function sendMessage(roomid,data){

if(socket){

socket.emit(‘message’,roomid,data);

}

}

// 文件传输

function sendData(){

var offset = 0;

var chunkSize = 16384;

var file = fileInput.files[0];

console.log(File is ${[file.name, file.size, file.type, file.lastModified].join(' ')});

// Handle 0 size files.

statusMessage.textContent = ‘’;

downloadAnchor.textContent = ‘’;

if (file.size === 0) {

bitrateDiv.innerHTML = ‘’;

statusMessage.textContent = ‘File is empty, please select a non-empty file’;

return;

}

sendProgress.max = file.size;

fileReader = new FileReader();

fileReader.onerror = error => console.error(‘Error reading file:’, error);

fileReader.onabort = event => console.log(‘File reading aborted:’, event);

fileReader.onload = e => {

console.log('FileRead.onload ', e);

dc.send(e.target.result);

offset += e.target.result.byteLength;

sendProgress.value = offset;

if (offset < file.size) {

readSlice(offset);

}

}

var readSlice = o => {

console.log('readSlice ', o);

const slice = file.slice(offset, o + chunkSize);

fileReader.readAsArrayBuffer(slice);

};

readSlice(0);

}

function receivemsg(e){

console.log(Received Message ${event.data.byteLength});

receiveBuffer.push(event.data);

receivedSize += event.data.byteLength;

receiveProgress.value = receivedSize;

console.log(Received Message ${receiv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值